开发者学堂课程【大数据 ZooKeeper 快速入门:Zookeeper 集群角色】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/549/detail/7591
Zookeeper 集群角色
目录
一、Zookeeper 集群领导者
二、Zookeeper 集群追随者
三、Zookeeper 集群观察者
一、Zookeeper 集群角色
Zookeeper 能够更好的在集群中提供服务,就在于他有更好的集群角色,每个角色有不同的功能
客户端可能回连接到不同的角色上,它们的区别在于它们之间的不同职责
1.Leader:领导者
Zookeeper 集群工作的核心
例如:删除和修改的操作,删除成功修改就会报错,包括创建文件目录修改,等对文件内容发生改变的操作叫事务性操作,所有的事务性操作都交给 Leader,保证数据的有效性不会出错
事务请求(写操作)的唯一调度和处理者,保证集群事务处理的顺序性;集群内部各个服务器的调度者。Leader 管理其他角色,进行信息同步,在集群内部充当调度者
对于 create,setData,delete 等有写操作的请求,则需要统一转发给 leader 处理,leader 需要决定编号、执行操作,这个过程称为一个事务。操作对数据发生改变叫做事务,把请求转发给 Leader,进行编号操作。
2.Follower:追随者
处理客端非事务(读操作)请求,转发事务请求给 Leader;
非事务即为读操作,例如查看文件目录等,不涉及针对文件系统目录的修改,不管在哪操作都可反馈。可能接收到事务性请求,不会拒绝会转发给 leader
参与集群 Leader 选举投票。若是一个新的集群,启动时候会选举一个 Leader,当一个挂掉会选举新的 Leader。
此外,针对访问量比较大的 zookeeper 集群,还可新增观察者角色。
3.0bserver:观察者
例如:集群业务非常繁忙,大部分业务都来进行数据查看,响应慢即可添加观察者
观察者角色,观察 Zookeeper 集群的最新状态变化并将这些状态同步过来,其对于非事务请求可以进行独立处理,对于事务请求,则会转发给 Leader 服务器进行处理。不涉及修改即为非事务请求的横向扩展,对于事务性请求也会转发给 Leader 进行处理。
观察者角色不参与集群投票,在不影响集群事务能力下,去提升集群的非事务处理能力。
不会参与任何形式的投票只提供非事务服务,通常用于在不影响集群事务处理能力的前提下提升集群的非事务处理能力。