目录
zk的选举机制
我们已经知道只有zk集群半数以上处于正常启动时,zk才会提供服务。现在让我们来说说zk的选举机制。
假设有zk集群中有5台服务器。id为1-5,如果它们都同时启动,选举机制是怎么产生leader和follower的呢?
1.即使同时启动,总有一个是最先启动成功的。这台服务器假设编号为1,此时它检测到集群中没有半数以上的服务器启动,此时它的选举状态是LOOKING(代表寻找leader的状态)。
2.紧接着启动的是2,它与最开始的1进行通信,互相交换自己的选举结果。由于两者都没有历史数据,所以id值较大的2胜出,但由于没有达到半数以上的服务器统一选举他。因此1和2都继续保持着LOOKING状态。
3.然后服务器3也启动了,根据前面的理论,3成为了1,2,3中的老大,此时3台服务器都选举了它,leader诞生了!
4.第4个服务器启动时,因为老大已经诞生了,所以即使id编号更大,4也只能作为小弟
5.最后一个服务器启动原理也和4一样