Zookeeper选举

zxid,sid,epoch变量的含义

  1. zxid:事务id
  2. sid : 服务器id,和myid一致,用来唯一的标识服务器。
  3. epoch : 标识leader的任期。

什么情况下会进行leader选举

  1. 服务器刚刚启动时。
  2. 当某一台服务器无法和leader进行通信时。

当一台机器进入选举流程时,服务器的两种状态

  1. 集群中存在leader(leader没有挂掉),那么继续服从即可(重新建立因为某种原因断开的连接)。
  2. 集群中不存在leader(真的是leader挂掉了),进行投票选举。

集群在第一次启动时的投票算法。

只有半数以上结点上线时,zookeeper集群才会处于启动状态。

  1. 投票规则如下。
  2. 当前集群无leader节点时,统一将票数投给myid最大的节点,当被投票数大于节点总数的一半时,该节点成为leader节点。
  3. 当前节点有leader节点时,新启动的节点应该投票给leader节点。

集群不是在第一次启动时的投票算法。

投票优先级为 epoch > zxid > sid。
当epoch比较大时,可以优先的当leader,就是上一个时代的人可以优先掌权。
而后比较事物id
最后才是服务器id

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值