选举机制的简介
Zookeeper为了保证各节点的协同工作,在工作时需要一个Leader角色,而Zookeeper默认采用FastLeaderElection算法,且投票数大于半数则胜出的机制,再介绍选举机制前,首先了解选举涉及的相关概念。
1.服务器ID
这是在配置集群时设置的myid参数文件,且参数分别表示为服务器1、服务器2、服务器3,编号越大在FastLeaderElection算法中的权重越大。
2.选举状态
在选举过程中,Zookeeper服务器有四种状态,它们分别为竞选状态(LOOKING)、随从状态(FOLLOWING,同步leader状态,参与投票)、观察状态(OBSERVING,同步leader状态,不参与投票)、领导者状态(LEADING)。
3.数据ID
是服务器中存放的最新数据版本号,该值越大则说明数据越新,在选举过程中数据越新权重越大。
4.逻辑时钟
通俗的讲,逻辑时钟被称为投票次数,同一轮投票过程中的逻辑时钟值是相同的,逻辑时钟起始值为0,每投完一次票,这个数据就会增加。然后,与接收到其它服务器返回的投票信息中的数值相比较,根据不同的值做出不同的判断。如果某台机器宕机,那么这台机器不会参与投票,因此逻辑时钟也会比其他的低。