- Zookeeper 教程
- Zookeeper - 主页
- Zookeeper - 概览
- Zookeeper - 基础知识
- Zookeeper – 工作流程
- Zookeeper – 主节点选举
- Zookeeper – 安装
- Zookeeper - 命令行界面 (CLI)
- Zookeeper – API
- Zookeeper – 应用
- Zookeeper 有用资源
- Zookeeper – 简要指南
- Zookeeper – 有用资源
- Zookeeper – 讨论
Zookeeper - 主节点选举
让我们分析如何在 ZooKeeper 集群中选举出一个主节点。假设集群中一共有 N 个节点。主节点选举流程如下:
所有节点都会使用同一条路径来创建一个顺序性的、短暂的 znode,/app/leader_election/guid_。
ZooKeeper 集群会将 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 将被删除。
下一顺位的从节点将通过观察者收到关于主节点被移除的通知。
下一顺位的从节点将检查是否有其他创建了最小序号的 znode。如果没有,则它将承担主节点的角色。否则,它会找到创建了最小序号 znode 的节点并将其作为主节点。
类似地,所有其他从节点都会选举创建了最小序号 znode 的节点作为主节点。
从头来做的话,主节点选举是一个复杂的过程。但是 ZooKeeper 服务使其变得非常简单。让我们在下一章继续进行 ZooKeeper 的开发目的安装。