1. 程式人生 > >Zookeeper leader選舉

Zookeeper leader選舉

讓我們分析如何在ZooKeeper集合中選舉leader節點。考慮一個叢集中有N個節點。leader選舉的過程如下:

  • 所有節點建立具有相同路徑 /app/leader_election/guid_ 的順序、臨時節點。
  • ZooKeeper集合將附加10位序列號到路徑,建立的znode將是 /app/leader_election/guid_0000000001,/app/leader_election/guid_0000000002等。
  • 對於給定的例項,在znode中建立最小數字的節點成為leader,而所有其他節點是follower。
  • 每個follower節點監視下一個具有最小數字的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。
  • 如果leader關閉,則其相應的znode/app/leader_electionN會被刪除。
  • 下一個線上follower節點將通過監視器獲得關於leader移除的通知。
  • 下一個線上follower節點將檢查是否存在其他具有最小數字的znode。如果沒有,那麼它將承擔leader的角色。否則,它找到的建立具有最小數字的znode的節點將作為leader。
  • 類似地,所有其他follower節點選舉建立具有最小數字的znode的節點作為leader。

leader選舉是一個複雜的過程,但ZooKeeper服務使它非常簡單。讓我們在下一章中繼續學習ZooKeeper安裝,以用於開發目的。