第一台机器启动时,他是无法完成leader选举的,其他机器也启动后,机器之间可以互相通信了,每台机器都试图找到一个leader,于是进入了leader选举流程。
每台机器会发起一个投票。且都是投自己,投票格式为(myid,ZXID)(myid是自身的id,ZXID是最后处理的一个事务id)
各台机器接收来自各个服务器的投票
把接收到的投票和自己发出去的投票对比,如果对方票更权威(pk规则如下),则更新自己的投票,并重新发出去(这个动作重复若干次,直到满足步骤5)
先对比ZXID,数值大的胜出
如果ZXID相等,则对比myid,数值大的胜出
如果有大于一半的机器同时投了某台机器,那它就是leader,选举完成
确定谁是leader后,每台服务器都会更改自己的状态