zookeeper集群中master挂掉了,如何重新选举master?

提问者:帅平 问题分类:面试刷题
zookeeper集群中master挂掉了,如何重新选举master?
1 个回答
披起头发是娇弱
披起头发是娇弱
假设有五台服务器组成的 Zookeeper 集群,它们的 id 从 1-5(手动设定,全局唯一),此时1号leader挂掉了,选举过程如下:
1、leader宕机后所有follower状态变更为looking
2、投票开始前引入事务id概念,可以理解为数据副本之间的完整性,因此在进行比较的时候首先会比较事务id其次才是myid
3、zk2,发起一次选举。zk2 投自己一票,投票结果为zk2(2,44[事务id])一票,选举无法完成,zk2状态保持为 LOOKING;
4、zk3,发起一次选举。zk2 和 zk3 分别投自己一票并交换选票信息:此时zk3(3,22[事务id])发现zk2 的事务ID比自己目前投票推举的)大,更改选票为推举zk2。zk2 票数 2票,没有半数以上结果,选举无法完成,zk2,3状态保持 LOOKING
5、zk4,发起一次选举。设zk4的id为zk4(4,44[事务id]),zk4的事务id和zk2的一致但是myid大于zk2,因此zk2、zk3分别投票给zk4,投票结果3,超过半数zk2,zk3更改状态为 FOLLOWING,zk4 更改状态为 LEADING;
发布于:3个月前 (01-24) IP属地:四川省
我来回答