用户工具


lead选举概述

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