【发布时间】:2019-01-28 03:19:58
【问题描述】:
我正在尝试在集群故障转移期间测试我的软件行为,因此我想配置一个最简单的集群:一个主服务器和两个从服务器。我有以下内容的树文件 7000.conf - 7002.conf:
port 7000
cluster-config-file nodes.7000.conf
appendfilename appendonly.7000.aof
dbfilename dump.7000.rdb
pidfile /var/run/redis_7000.pid
include cluster.conf
cluster.conf的内容:
cluster-enabled yes
appendonly yes
maxclients 100
daemonize yes
cluster-node-timeout 2000
cluster-slave-validity-factor 0
然后我已经配置 7000 运行从 0 到 16383 的所有插槽,并且 7001 和 7002 是 7000 的副本:
XXX 127.0.0.1:7002 slave YYY 0 1511389011347 4 connected
YYY 127.0.0.1:7000 myself,master - 0 0 4 connected 0-16383
ZZZ 127.0.0.1:7001 slave YYY 0 1511389011246 4 connected
然后我尝试摆脱 7000 - 通过shutdown 命令,或通过终止进程。其中一个奴隶应该将自己提升为主人,但没有一个:
ZZZ 127.0.0.1:7001 slave YYY 0 0 3 connected
YYY 127.0.0.1:7000 master,fail? - 1511389104442 1511389103933 4 disconnected 0-16383
XXX 127.0.0.1:7002 myself,slave YYY 0 1511389116543 4 connected
我已经等了差不多几分钟,我的奴隶不想成为主人。如果我通过cluster failover takeover 强制一个从属设备成为主控设备,这样做非常高兴(如果我重新启动主控设备,它就会成为从属设备),但不是自动的。
我尝试过使用cluster-node-timeout - 没有帮助。
我做错了吗? Redis 版本是 3.2.11。
【问题讨论】:
标签: redis cluster-computing failover