zookeeper集群初始化启动的时候是如何选举master的?

提问者:帅平 问题分类:面试刷题
zookeeper集群初始化启动的时候是如何选举master的?
1 个回答
玖墨
玖墨
假设有五台服务器组成的 Zookeeper 集群,它们的 id 从 1-5(手动设定,全局唯一),假设这些服务器依序启动,那么初始化选举的过程如下:
1、zk1,发起一次选举。zk1 投自己一票。此时zk1 票数一票,不够半数以上(3票),选举无法完成,zk1状态保持为 LOOKING;
2、zk2,再发起一次选举。zk1 和 zk2 分别投自己一票并交换选票信息:此时zk1发现zk2 的 ID 比自己目前投票推举的(zk1)大,更改选票为推举zk2。此时zk1票数 0 票,zk2 票数 2票,没有半数以上结果,选举无法完成,zk1,2状态保持 LOOKING
3、zk3,发起一次选举。此时zk1和 zk2 都会更改选票为zk3。此次投票结果:zk1 为 0 票,zk2 为 0 票,zk3 为 3票。此时zk3 的票数已经超过半数,zk3 当选 Leader。zk1,zk2更改状态为 FOLLOWING,zk3 更改状态为 LEADING;
4、zk4,发起一次选举。此时zk1,zk2,zk3 已经不是 LOOKING 状态,不会更改选票信息。交换选票信息结果:zk3 为 3 票,zk4 为1 票。此时zk4 服从多数,更改选票信息为zk3,并更改状态为FOLLOWING;
5、zk5,同 4 一样。
发布于:3个月前 (01-24) IP属地:四川省
我来回答