- 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 的開發目的安裝。