Zookeeper--默认选举规则

默认选举规则

zxid:每个数据节点最新的数据的id,最新的节点的编号越大

  • 在zookeeper第一次启动都为0
  • 只要zookeeper每台机器的数据都一样,这个值都是一样的
  • 除非zookeeper中每台机器之间有数据不一样
    • leader广播写入了数据,有些follower写成功了,有些follower失败了
  • 如果不一样,zxid越大,就越优先成为leader,代表这台机器中的数据是最全的
    • leader:1 2 3 4
    • followera:1 2 3 4
    • followerb:1 2 3
  • 如果这时候,leader宕机,重新选举新的leader
  • 谁的数据最全,就最应该成为leader
  • followera优先成为leader

myid:每个机器节点对应的初始权重

部署的时候指定

  • 如果有两个follower,他们最新的zxid都是一样的,怎么办?
    • leader:1 2 3 4
    • followera:1 2 3 4
    • followerb:1 2 3 4
  • 如果这时候,leader宕机,重新选举新的leader
  • 先比较zxid,如果zxid一致,再比较myid
  • myid越大,越优先成为leader
  • 投票超过半数

举例

  • 三台机器依次对应的初始权重为1、2、3
  • 三台机器首次依次启动
机器	zxid   myid
node-01	 0	    1
node-02	 0		2
node-03	 0		3
  • node-01启动,投票投自己,0 - 1
    • 这时候node-01会有优先成为leader
  • node-02启动,投票投自己,0-2
    • 比较zxid:一样
    • 比较myid:2>1
    • node-02成为备选的leader,这时候node-01改投node-02
    • 总共3台机器,已经两台机器投票了,超过半数,投的都是2
    • 第二台机器成为leader
  • node-03启动,只能成为follower
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值