投票机制说明
第一轮投票全部投给自己
第二轮投票给myid比自己大的相邻节点,投票之前先判断自身的票数和其他节点的票数,如果得票超过半数,则选举结束,否则往下投票继续进行。
选举触发
当集群中的服务器出现已下两种情况时会进行Leader的选举。
服务节点初始化启动:
当节点初始起动时会在集群中寻找Leader节点,如果找到则与Leader建立连接,其自身状态变化follower或observer。如果没有找到Leader,当前节点状态将变化LOOKING,进入选举流程。
半数以上的节点无法和Leader建立连接:
在集群运行其间如果有follower或observer节点宕机只要不超过半数并不会影响整个集群服务的正常运行。但如果leader宕机,将暂停对外服务,所有follower将进入LOOKING 状态,进入选举流程。