Zookeeper-leader-election
提供:Dev Guides
Zookeeper-リーダー選挙
ZooKeeperアンサンブルでリーダーノードを選択する方法を分析しましょう。 クラスターには N 個のノードがあると考えてください。 リーダー選挙のプロセスは次のとおりです-
- すべてのノードは、同じパス /app/leader_election/guid_ を使用して、シーケンシャルな一時znodeを作成します。
- 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のインストールに進みましょう。