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