暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
zab.pdf
140
7页
0次
2023-04-29
100墨值下载
前⾔
ZabZookeeper 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. FOLLOWINGfollower⻆⾊;
3. LEADINGleader⻆⾊;
4. OBSERVINGobserver⻆⾊;
可以知道Zookeeper是通过⾃身的状态来区分⾃⼰所属的⻆⾊,来执⾏⾃⼰应该的任务。
ZAB状态 Zookeeper还给ZAB定义的4中状态,反应Zookeeper从选举到对外提供服务的过程中的四
个步骤。 状态枚举定义:
1. ELECTION: 集群进⼊选举状态,此过程会选出⼀个节点作为leader⻆⾊;
2. DISCOVERY:连接上leader,响应leader⼼跳,并且检测leader的⻆⾊是否更改,通过此步骤之后
选举出的leader才能执⾏真正职务;
3. SYNCHRONIZATION:整个集群都确认leader之后,将会把leader的数据同步到各个节点,保证整
个集群的数据⼀致性;
4. BROADCAST:过渡到⼴播状态,集群开始对外提供服务。
public enum ZabState {
ELECTION,
DISCOVERY,
SYNCHRONIZATION,
BROADCAST
}
ZXID
Zxid是极为重要的概念,它是⼀个long型(64位)整数,分为两部分:纪元(epoch)部分和计数器
counter)部分,是⼀个全局有序的数字。
epoch代表当前集群所属的哪个leaderleader的选举就类似⼀个朝代的更替,你前朝的剑不能斩本朝的
官,⽤epoch代表当前命令的有效性,counter是⼀个递增的数字。
选举
基础概念介绍完了,下⾯开始介绍zab协议是怎么⽀持leader选举的。
进⾏leader有三个问题,什么时候进⾏?选举规则?选择流程?
下⾯我会⼀⼀解答这三个问题:
1. 选举发⽣的时机 Leader发⽣选举有两个时机,⼀个是服务启动的时候当整个集群都没有leader节点
会进⼊选举状态,如果leader已经存在就会告诉该节点leader的信息,⾃⼰连接上leader,整个集群
不⽤进⼊选举状态。
还有⼀个就是在服务运⾏中,可能会出现各种情况,服务宕机、断电、⽹络延迟很⾼的时候leader
都不能再对外提供服务了,所有当其他⼏点通过⼼跳检测到leader失联之后,集群也会进⼊选举状
态。
2. 选举规则 进⼊投票选举流程,怎么才能选举出leader?或者说按照什么规则来让其他节点都能选举
你当leader
3. zab协议是按照⼏个⽐较规则来进⾏投票的筛选,如果你的票⽐我更好,就修改⾃身的投票信息,
改投你当leader
下⾯代码是zookeeper投票⽐较规则:
/*
* We return true if one of the following three cases hold:
* 1- New epoch is higher
* 2- New epoch is the same as current epoch, but new zxid is
higher
* 3- New epoch is the same as current epoch, new zxid is the same
* as current zxid, but server id is higher.
*/
return ((newEpoch > curEpoch)
|| ((newEpoch == curEpoch)
&& ((newZxid > curZxid)
|| ((newZxid == curZxid)
&& (newId > curId)))));
of 7
100墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜