2016-12-26 5 views

答えて

1

これは、クォーラムの分割方法によって異なります。 zookeeperは、zookeeperサーバーのクォーラムとして動作することがわかります。 2台のサーバーが互いに通信できない場合は、ネットワークパーティションの問題があることを意味します(1組のサーバーは、ネットワークのさまざまな部分にある他のサーバーに到達できません)。定足数には奇数のサーバーが使用されるため、サーバーの大部分と少数のパーティションの2つのパーティションが存在します。

リーダーが多数のパーティションにある場合は、

定足数がリーダーとして動作し続けますが、定足数の過半数を持っています。少数派では、サーバーはシャットダウンし、リーダー選挙の段階に入ります。以下のテキストは、Apache Zookeeperのuser mail listのメールスレッドから引用されています。

パーティションの後に、少数派地域のすべてのサーバーがシャットダウンし、リーダー選出フェーズに移行します。これらのサーバーに接続されているすべてのクライアントセッション は切断され、登録されていれば "KeeperState.Disconnected"イベントがウォッチャーに送信されます。

しかし、ZooKeeperは読み取り専用サーバーモードをサポートしています。このモードでは、サーバーが をクォーラムから区切っている場合でも、クライアントは を読み取り専用サーバーに接続できます。

リーダーが少数のパーティションにある場合は、再度

、リーダー選挙は、両方のパーティションに起こるのだろうと少数派のパーティションは、指導者を選出することはできません。したがって、シャットダウンします。多数のパーティションが新しいリーダーを選出し、操作を続行します。

あなたの質問では、master cannot connect to slaveと呼ばれるものはネットワークパーティショニングの例です。マスター(リーダー)がマイノリティパーティションにあるか、スレーブが少数パーティションにあるかのいずれかです。

希望:-)

関連する問題