简单讲解Zookeeper的选举机制

都知道zookeeper集群中有一个leader和多个followers,刚学习的时候还非常疑惑到底是怎么定义leader和follower,后来了解了他的选举机制后才知道其实思路还是很简单的:
在这里插入图片描述
1、首先要知道zookeeper的半数机制,就是集群中只要有半数以上的节点存活,这个集群就能正常服务,比如说一个集群中有6台服务器,但其中只有4台是能够正常提供服务的,那这个集群就能正常服务了,反之若刚好只有3台能正常服务,没有达到半数以上,那这个集群就失活了。

1)再来说它的选举机制,当第一台server加进来启动的时候,需要选出一个leader,这时他会发出一个报文,但此时只有一台server在启动,所以是不会有任何响应的,所以server1将自己的一票投给自己,但由于只有一台server,所以server1也当不上leader,因此此时选举状态处于Looking状态

2)第二台服务器server2启动后,它先将自己的一票投给自己,然后会与server1进行通信,并且两者会交换选举结果,发现两者的票数都是1,因此server1要将自己的一票投给myid值较大的server2,所以此时server2有两票,他胜出了,但是此时只有两台server,没有达到半数以上,因此集群也无法正常服务

3)此时server3来了,给自己投了一票,同时还会与前两台server进行通信,此时达到了半数,而server3的myid值较大,因此server1和2的票数将会投给server3,server3胜出,server数超过半,此时zookeeper能正常服务

4)此时server4和server5又进来了,给自己各投了一票,但是与其他的server通信后才发现原来leader已经选出来了,所以选举就不用再进行下去了,server3当选leader

ps:字有点多,但还是很容易理解的,见谅

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值