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被刪除。

  • 跟隨節點接下來將通過觀察者得到關領導去除的通知。

  • 跟隨節點接下來會檢查是否有其他znodes用最小數量。 如果沒有,接着它將承擔領導者的角色。否則,它會找到哪些用最小數創造了znode作爲領導者的節點。

  • 同樣,其他所有跟隨節點選舉創造了znode用最小數作爲領導者的節點。

領導人選舉時,它從頭開始做一個複雜的過程。但ZooKeeper服務,使得它非常簡單。讓我們在接下來的章節介紹 ZooKeeper 安裝和開發。