Redis群集不支持多个主节点的同时失败

时间:2016-05-31 10:33:13

标签: caching redis memcached redis-cluster

我有以下配置:

  • 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

1 个答案:

答案 0 :(得分:0)

当至少有一半的主设备断开连接时,不会发生从设备自动故障转移,因为需要进行故障转移选择,超过一半的主设备达成共识。

要启动手动故障转移,请使用redis-cli连接到从属节点并发送cluster failover TAKEOVER命令(需要takeover)。

在你的情况下

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

:7003成为主设备之后,另一个从设备也将启动自动故障转移,因为有超过一半(2/3)的主设备处于活动状态。