0
点赞
收藏
分享

微信扫一扫

讲一下zookeepe的选举机制

素的盐 2022-06-08 阅读 56

答:

zookeeper的节点数必须为2n+1,也就是奇数个节点,以此来保证选举成功。以5个节点的集群为例,每个zk都有自己的id,叫myid,这里假设我5台服务器zk的myid依次为1-5。

(1)启动myid为1的zk,它会给自己投票,然后发现集群中无其他节点启动,于是它处于looking状态

(2)启动myid为2的zk,它会给自己投票,然后与节点1互换投票,由于节点2的myid大于节点1,所以此次投票节点2胜出,但节点2此时的得票少于总节点数的一半,所以节点2不能被作为master,节点2也将处于looking状态

(3)启动myid为3的zk,它会给自己投票,然后与节点1,2互换投票,由于节点3的myid大于节点2,所以此次投票节点3胜出,节点3的得票数大于节点总数的一半了,此时节点3胜出,成为master节点,其他两个节点成为slaver节点

(4)启动myid为4的zk,尽管节点4的myid最大,但此时已经有主了,节点4也只能乖乖做一个从节点。。。

(5)启动myid为5同上。。。

(6)当有节点挂了之后,开始重新选举,选举规则跟上面类似。


举报

相关推荐

0 条评论