私は飼い主でマスタースレーブモデルを学んでいます。私はちょうど質問があります:マスターとスレーブが通信できない場合はどうなりますか?
マスターとスレーブが互いに通信できないとどうなりますか?マスターはスレーブからACKを受け取ることができませんか?スレーブはそれ自身を再起動しますか
私は飼い主でマスタースレーブモデルを学んでいます。私はちょうど質問があります:マスターとスレーブが通信できない場合はどうなりますか?
マスターとスレーブが互いに通信できないとどうなりますか?マスターはスレーブからACKを受け取ることができませんか?スレーブはそれ自身を再起動しますか
これは、クォーラムの分割方法によって異なります。 zookeeperは、zookeeperサーバーのクォーラムとして動作することがわかります。 2台のサーバーが互いに通信できない場合は、ネットワークパーティションの問題があることを意味します(1組のサーバーは、ネットワークのさまざまな部分にある他のサーバーに到達できません)。定足数には奇数のサーバーが使用されるため、サーバーの大部分と少数のパーティションの2つのパーティションが存在します。
リーダーが多数のパーティションにある場合は、
定足数がリーダーとして動作し続けますが、定足数の過半数を持っています。少数派では、サーバーはシャットダウンし、リーダー選挙の段階に入ります。以下のテキストは、Apache Zookeeperのuser mail list
のメールスレッドから引用されています。
パーティションの後に、少数派地域のすべてのサーバーがシャットダウンし、リーダー選出フェーズに移行します。これらのサーバーに接続されているすべてのクライアントセッション は切断され、登録されていれば "KeeperState.Disconnected"イベントがウォッチャーに送信されます。
しかし、ZooKeeperは読み取り専用サーバーモードをサポートしています。このモードでは、サーバーが をクォーラムから区切っている場合でも、クライアントは を読み取り専用サーバーに接続できます。
リーダーが少数のパーティションにある場合は、再度
、リーダー選挙は、両方のパーティションに起こるのだろうと少数派のパーティションは、指導者を選出することはできません。したがって、シャットダウンします。多数のパーティションが新しいリーダーを選出し、操作を続行します。
あなたの質問では、master cannot connect to slave
と呼ばれるものはネットワークパーティショニングの例です。マスター(リーダー)がマイノリティパーティションにあるか、スレーブが少数パーティションにあるかのいずれかです。
希望:-)