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