【问题标题】:Redis Cluster - Slave does not FAILOVERRedis 集群 - 从站不进行故障转移
【发布时间】:2017-10-09 19:54:02
【问题描述】:

我已经创建了一个 Redis 集群,如下所示。

xxx.xxx.xxx.195:9100    xxx.xxx.xxx.196:9100    xxx.xxx.xxx.197:9100
xxx.xxx.xxx.195:9200    xxx.xxx.xxx.196:9200    xxx.xxx.xxx.197:9200

我经历过当我同时停止 2 个作为集群主控的 Redis 实例作为(xxx.xxx.xxx.196 的 2 个实例)时,集群无法恢复,

xxx.xxx.xxx.195:9100 (Master)    xxx.xxx.xxx.196:9100 (Master)   xxx.xxx.xxx.197:9100 (Slave)
xxx.xxx.xxx.195:9200 (Slave)     xxx.xxx.xxx.196:9200 (Master)   xxx.xxx.xxx.197:9200 (Slave)

但同时,如果我停止 2 个 .195 服务器实例,其中 9100 -Master9200 - Slave。集群恢复正常

集群配置文件:

protected-mode no
activerehashing yes
cluster-enabled yes
cluster-config-file /opt/redis/conf/nodes9100.conf
cluster-slave-validity-factor 0
cluster-node-timeout 5000
appendonly yes

Redis 登录专用从服务器:

28939:S 09 Oct 16:08:32.834 - 0 clients connected (0 slaves), 1327200 bytes in use
28939:S 09 Oct 16:08:32.834 * Connecting to MASTER xxx.xxx.xxx.196:9200
28939:S 09 Oct 16:08:32.835 * MASTER <-> SLAVE sync started
28939:S 09 Oct 16:08:32.835 # Error condition on socket for SYNC: Connection refused
28939:S 09 Oct 16:08:33.837 * Connecting to MASTER xxx.xxx.xxx.196:9200
28939:S 09 Oct 16:08:33.837 * MASTER <-> SLAVE sync started
28939:S 09 Oct 16:08:33.837 # Error condition on socket for SYNC: Connection refused
28939:S 09 Oct 16:08:34.839 * Connecting to MASTER xxx.xxx.xxx.196:9200
28939:S 09 Oct 16:08:34.839 * MASTER <-> SLAVE sync started
28939:S 09 Oct 16:08:34.839 # Error condition on socket for SYNC: Connection refused
28939:S 09 Oct 16:08:35.840 * Connecting to MASTER xxx.xxx.xxx.196:9200
28939:S 09 Oct 16:08:35.840 * MASTER <-> SLAVE sync started
28939:S 09 Oct 16:08:35.840 # Error condition on socket for SYNC: Connection refused
28939:S 09 Oct 16:08:36.744 - Node 982d9b0a50b393d5fe604caefc0acaae68547648 reported node b57d59fb5685daeaac7e249d99fa257e9be66f4f as not reachable.
28939:S 09 Oct 16:08:36.844 * Connecting to MASTER xxx.xxx.xxx.196:9200
28939:S 09 Oct 16:08:36.844 * MASTER <-> SLAVE sync started
28939:S 09 Oct 16:08:36.844 # Error condition on socket for SYNC: Connection refused

【问题讨论】:

    标签: redis redis-cluster


    【解决方案1】:

    发现问题:
    源代码:https://redis.io/topics/cluster-tutorial Redis Cluster 还在分区期间提供了一定程度的可用性,这实际上是在某些节点发生故障或无法通信时继续操作的能力。但是,如果发生较大故障(例如,大多数主节点不可用),集群将停止运行。

    【讨论】:

      猜你喜欢
      • 2020-06-16
      • 1970-01-01
      • 2016-03-19
      • 2014-06-14
      • 1970-01-01
      • 1970-01-01
      • 2021-02-15
      • 2017-08-31
      相关资源
      最近更新 更多