前⾔
Zab(Zookeeper Atomic Broadcast)是为ZooKeeper协设计的崩溃恢复原⼦⼴播协议,它保证
zookeeper集群数据的⼀致性和命令的全局有序性。
概念介绍
在介绍zab协议之前⾸先要知道zookeeper相关的⼏个概念,才能更好的了解zab协议。
集群⻆⾊
1. Leader:同⼀时间集群总只允许有⼀个Leader,提供对客户端的读写功能,负责将数据同步⾄各个
节点;
2. Follower:提供对客户端读功能,写请求则转发给Leader处理,当Leader崩溃失联之后参与Leader
选举;
3. Observer:与Follower不同的是但不参与Leader选举。
服务状态
1. LOOKING:当节点认为群集中没有Leader,服务器会进⼊LOOKING状态,⽬的是为了查找或者选
举Leader;
2. FOLLOWING:follower⻆⾊;
3. LEADING:leader⻆⾊;
4. OBSERVING:observer⻆⾊;
可以知道Zookeeper是通过⾃身的状态来区分⾃⼰所属的⻆⾊,来执⾏⾃⼰应该的任务。
ZAB状态 Zookeeper还给ZAB定义的4中状态,反应Zookeeper从选举到对外提供服务的过程中的四
个步骤。 状态枚举定义:
1. ELECTION: 集群进⼊选举状态,此过程会选出⼀个节点作为leader⻆⾊;
2. DISCOVERY:连接上leader,响应leader⼼跳,并且检测leader的⻆⾊是否更改,通过此步骤之后
选举出的leader才能执⾏真正职务;
3. SYNCHRONIZATION:整个集群都确认leader之后,将会把leader的数据同步到各个节点,保证整
个集群的数据⼀致性;
4. BROADCAST:过渡到⼴播状态,集群开始对外提供服务。
评论