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のインストールに移りましょう。