Zookeeper Leader(领导节点)选择

让我们分析如何在 ZooKeeper 集成中选举领导节点。 考虑集群中有 N 个节点。 领导节点选举过程如下

  • 所有节点都创建一个具有相同路径 /app/leader_election/guid_ 的顺序临时 znode。
  • ZooKeeper ensemble 会将 10 位序列号附加到路径,创建的 znode 将是 /app/leader_election/guid_0000000001、**/app/leader_election/guid_0000000002** 等。
  • 对于给定的实例,在 znode 中创建最小数量的节点成为领导者,所有其他节点都是追随者。
  • 每个跟随者节点监视具有下一个最小编号的 znode。 例如,创建 znode /app/leader_election/guid_0000000008 的节点将监视 znode /app/leader_election/guid_0000000007,创建 znode /app/leader_election/guid_0000000007 的节点将监视 znode /app/leader_election/guid_0000000006
  • 如果领导者宕机,则其对应的 znode /app/leader_electionN 将被删除。
  • 下一个跟随者节点将通过观察者获得有关领导者移除的通知。
  • 下一个 follower 节点将检查是否有其他 znodes 的数量最小。 如果没有,那么它将承担领导者的角色。 否则,它会找到创建编号最小的 znode 的节点作为领导者。
  • 同理,所有其他follower节点都选举创建znode数量最小的节点为leader。

从头开始选举领导者是一个复杂的过程。 但是 ZooKeeper 服务使它变得非常简单。 让我们在下一章继续安装 ZooKeeper 以用于开发目的。

查看笔记

扫码一下
查看教程更方便