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