2016-12-26 2 views

Antwort

1

Das hängt davon ab, wie das Quorum partitioniert wird. Sie wissen vielleicht, dass der Tierpfleger als Quorum von Tierpfleger-Servern agiert. Wenn zwei Server nicht miteinander kommunizieren können, liegt ein Problem mit der Netzwerkpartitionierung vor (eine Gruppe von Servern kann die anderen Server in verschiedenen Teilen eines Netzwerks nicht erreichen). Da wir eine ungerade Anzahl von Servern im Quorum verwenden, gibt es zwei Partitionen, eine mit der Mehrheit der Server und eine mit einer Minderheit.

Wenn Führer in der Mehrheit Partition sind,

Quorum wird auch weiterhin als Marktführer arbeiten hat die Mehrheit des Quorums. In der Minderheitspartition werden die Server heruntergefahren und in eine Wahlphase für die Anführer gehen. Der folgende Text wird von einem Mail-Thread in user mail list von Apache Zookeeper zitiert.

Nach der Partition werden alle Server in der Minderheitsregion heruntergefahren und in die Leader-Wahlphase verschoben. Alle Client-Sitzungen , die mit diesen Servern verbunden sind, werden getrennt und erhalten das Ereignis "KeeperTate.Disconnected" an ihre Beobachter, sofern diese registriert sind.

Aber ZooKeeper unterstützt den schreibgeschützten Servermodus. In diesem Modus kann sich der Client mit dem schreibgeschützten Server verbinden, auch wenn der Server möglicherweise vom Quorum partitioniert ist.

Wenn der Marktführer in der Minderheit Partition,

Auch hier wird ein Führer Wahl in beiden Partitionen und Minderheiten Partition wird nicht passieren einen Führer zu wählen Lage sein. Daher wird heruntergefahren. Die Mehrheitspartition wählt einen neuen Anführer und setzt die Operation fort.

In Ihrer Frage, was Sie als master cannot connect to slave beziehen, ist ein Beispiel für die Netzwerkpartitionierung. Entweder befindet sich der Master (Leader) in der Minderheitspartition oder der Slave befindet sich in der Minderheitspartition.

Ich hoffe, Sie haben die Idee :-)

Verwandte Themen