zookeeper选举机制

Zookeeper的选举机制

假设有五台服务器组成的zookeeper集群,他们的id值为1,2,3,4,5,同时他们都是最新启动的,也就是没有历史数据,假设这些服务器依序启动,来看看会发生什么.

我们按启动顺序分为以下五个阶段:

  1. node1启动,此时只有他一台服务器启动了,他发出去的报文没有任何响应,他将自己的票投给自己, 他的选举状态是looking状态
  2. node’2启动,他与最开始的node1进行通信,相互交换自己选举的结果,由于两者都没有历史数据,所以id值大的node2胜出,node1的票改投给node2,node2的票也投给自己,获得两张票,但是由于没有达到超过半数以上的服务器都同意选举他(这个集群中半数以上是3),所以node1和node2还是继续保持looking状态
  3. node3启动,根据前面的理论分析,node3的id值为3,node1和node2将他们的票改投给node3,加上node3自己的票,已有三票,故node3成为leader.
  4. node4启动, 根据前面的理论分析,node4的id值为4,是已启动的服务器中最大的,但是由于前面有半数以上的服务器都选择了node3,所以他成为follower.
  5. node5启动,同node4一样成为follower.

选举过程如下图:在这里插入图片描述

假如按照node5,4,3,2,1的循序启动,那么node5将会成为leader, 因为node5的id值最大,在过半前所有的node都会将票投给node5使其成为leader.

故而得出以下结论:

在启动过半时,在已启动的服务器中id值最大的服务器将会成为leader.

比如说, 如果按node3,4,2,5,1的顺序启动, 则node4将成为leader.

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值