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

廣告
© . All rights reserved.