Zookeeper选举机制

Zookeeper第一次启动的选举机制

 SID:服务器ID。用来唯一标识一台Zookeeper集群中的机器,每台机器得SID不能重复,和myid一致。

ZXID:事物ID。ZXID是一个事物ID。用来标识一次服务器状态的变更。在某一时刻,急群众的每台机器的ZXID值不一定完全相同,这和Zookeeper服务器对于客户端“更新请求”的处理逻辑有关。

Epoch:每个Leader任期的代号。没有Leader时同一轮投票过程中的逻辑时钟值是相同的。每投完一次票这个数据就会增加。

  1. 服务器1启动:发动一次选举。服务器1就会投自己一票,此时服务器1票数为1票,不够半数(3票),选举无法完成,所以服务器1状态保持为LOOKING;
  2. 服务器2启动:再发起一次选举,服务器1和2分别投自己一票并交换选票信息,此时服务器1发现服务器2的myid大于自己的myid,则会更改自己的选票,改投服务器2,此时服务器1选票数为0,服务器2选票数为2,可选票数最多的依然没有过半数,选举无法完成,则服务器1和服务器2状态保持为LOOKING;
  3. 服务器3启动,再次发起一次选举,此时因为服务器1和服务器2的myid小于服务器3的myid,经过投票过后,服务器1的选票为0票,服务器2的选票为0票,服务器3的选票为3票,已经超过半数,此时选举成效,由服务器3当选Leader。服务器1和服务器2更改状态为FOLLOWING,服务器3状态更改为LEADING;
  4. 服务器4启动,还要发起一次选举,此时服务器1和服务器2状态已经为FOLLOWING,不会更改自己的选票信息,也就是说他们已经承认服务器3为Leader,不会改。所以依然为服务器3当选Leader;
  5. 服务器5启动,同服务器4一样,也只能为FOLLOWING。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值