2016-05-31 177 views
0

我有以下配置的同時失效:Redis的集羣不支持多個主節點

  • Redis_version:3.2.0
  • 3的主節點和3個從節點

每主節點被複制到一個從機一切正確。當一個主節點通過「kill」命令失敗時,相應的從節點將成爲預期的主節點。幾秒鐘後,cluster_state返回到OK狀態。

但是,如果兩個主節點同時出現故障,則沒有相關的從節點成爲主節點。 cluster_state保持「失敗」狀態。當主人的至少一半斷開連接,因爲故障切換選舉需要超過主人的一半進入共識

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)的主人還活着多。