ZooKeeper之选举(fastleaderelection算法)

ZooKeeper之选举(fastleaderelection算法)

每个节点除了zxid,还会有一个myyid(在部署ZooKeeper的时候自己创建并编写任意不相同的数字)

  1. 启动选举
  2. 运行时选举

概念

  • 外部投票:其他服务器发来的投票
  • 内部投票:服务器自身的投票
  • 选举轮次:leader周期,可以理解为epoch

pk:比较外部投票与内部投票,确定是否变更内部投票

  1. 每个节点初始化自己的选票(myid、zxid,当前节点选举轮次,被推荐的服务器选举轮次,状态(looking))
  2. 发送初始化选票
  3. 接受外部选票
  4. 判断选举轮次(大于外转3,小于、等于),进行PK
  5. 变更投票,重新发送
  6. 归档,每个节点会将收到的外部投票进行归档
  7. 统计。判断是否有过半的服务器认可当前的投票,如果则终止。

猜你喜欢

转载自www.cnblogs.com/we9999/p/12398433.html
今日推荐