0

我有以下配置:

  • 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
4

1 回答 1

0

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

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

在你的情况下

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

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

于 2016-06-21T06:23:16.200 回答