选择自身已知 拥有最大ZXID 的服务器作为 Leader。即服务器本地保存(vote_sid, vote_zxid)并初始化为自身(sid, zxid), 若收到的选票中 vote_zxid 更大就更新本地数据,并根据最新数据投出选票。
若存在 zxid 相同则选择 sid 最大的服务器(作者认为选择sid最小的也可以)。
若在某轮投票中某个节点收到过半数的相同选票,那么认为该服务器为新的 Leader 投票结束。
因为选举阶段要求服务器收到过半选票才能成为新 Leader, 因此不可能出现集群中存在两个 Leader 的现象。
选举过程是比较典型的 Paxos 算法过程,选举过程中不会产生新的 ZXID, 因此不会出现 Paxos 算法中活锁的现象。