2016-05-31 6 views
0

ich die folgende Konfiguration haben:Redis Cluster unterstützt keine gleichzeitige Ausfallen von mehreren Master-Knoten

  • Redis_version: 3.2.0
  • 3 Master-Knoten und 3 Slave-Knoten

Jeder Master-Knoten wird zu einem Slave repliziert. Alles ist korrekt. Wenn ein Master-Knoten durch einen "Kill" -Befehl ausfällt, wird der entsprechende Slave-Knoten wie erwartet zum Master. Nach einigen Sekunden kehrt cluster_state in den Zustand OK zurück.

ABER, wenn zwei Master-Knoten gleichzeitig ausfallen, wird keiner der zugehörigen Slave-Knoten zum Master. Der cluster_state bleibt im "fail" -Zustand.

cluster nodes command output. 
b60c284a515b31aa6b11022fc07cf1a399171e04 127.0.0.1:7000 master,fail? - 1464690455030 1464690454930 1 disconnected 0-5460 
637d1f074419963653b206c5ed7cbed4c3d0ace0 127.0.0.1:7001 master,fail? - 1464690455030 1464690454930 2 disconnected 5461-10922 
d2aae2a3d87c6407e002076740c8febf80f37865 127.0.0.1:7003 myself,slave b60c284a515b31aa6b11022fc07cf1a399171e04 0 0 4 connected 
72d4c9ce140fb57436c1b21702bf3c646ef29db3 127.0.0.1:7002 master - 0 1464690718480 3 connected 10923-16383 
af34a7b2241943baf23e634e81b552d8bf23cdd0 127.0.0.1:7005 slave 72d4c9ce140fb57436c1b21702bf3c646ef29db3 0 1464690718480 6 connected 
d0fec0609c9e786ac9ca4629f36cabd7c5c3130c 127.0.0.1:7004 slave 637d1f074419963653b206c5ed7cbed4c3d0ace0 0 1464690718480 5 connected 

Antwort

0

Der Slave-Auto-Failover wird nicht passieren, wenn mindestens die Hälfte des Meisters der Verbindung unterbrochen wird, weil die Failover-Wahl mehr als die Hälfte des Meisters kommt in Konsens erforderlich ist.

Um einen manuellen Failover zu starten, verbinden Sie sich mit dem Slave-Knoten mit redis-cli und senden Sie einen cluster failover TAKEOVER-Befehl (der takeover wird benötigt).

In Ihrem Fall

redis-cli -h 127.0.0.1 -p 7003 cluster failover takeover 

Nach den :7003 wird ein Master, der andere Slave als auch ein automatisches Failover starten, da es mehr als die Hälfte (2/3) der Meister am Leben ist.

Verwandte Themen