我有以下配置:
每个主节点都复制到一个从属设备一切正确。当一个主节点因" 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 :(得分:0)
当至少有一半的主设备断开连接时,不会发生从设备自动故障转移,因为需要进行故障转移选择,超过一半的主设备达成共识。
要启动手动故障转移,请使用redis-cli
连接到从属节点并发送cluster failover TAKEOVER
命令(需要takeover
)。
在你的情况下
redis-cli -h 127.0.0.1 -p 7003 cluster failover takeover
在:7003
成为主设备之后,另一个从设备也将启动自动故障转移,因为有超过一半(2/3)的主设备处于活动状态。