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