2016-05-31 4 views
0

я получил следующую конфигурацию:Redis кластер не поддерживает одновременную ОТКЛОНЯЮТСЯ нескольких основных узлов

  • Redis_version: 3.2.0
  • 3 мастер-узлы и 3 ведомых узлов

Каждый главный узел реплицируется на подчиненный. Все правильно. Когда один главный узел выходит из строя командой «убить», соответствующий подчиненный узел становится ведущим, как ожидалось. Через несколько секунд cluster_state вернется в состояние OK.

НО, если два главных узла не работают одновременно, ни один из связанных подчиненных узлов не становится ведущим. Состояние cluster_state остается в состоянии «fail».

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 

ответ

0

Ведомое автоматическое аварийное переключение не произойдет, если хотя бы половина мастеров разъединена, поскольку отказоустойчивый выборы требуется более половины мастеров вступают в консенсус.

Чтобы начать ручной переход на другой ресурс, подключитесь к подчиненному узлу с помощью redis-cli и отправьте команду cluster failover TAKEOVER (требуется takeover).

В вашем случае

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

После :7003 становится мастером, а другой подчиненный начинает автоматический переход, а так как более половины (2/3) от мастера живы.