当主服务器失败时,Redis群集不会将Slave提升为主人

时间:2016-11-02 16:18:29

标签: redis

我正在Windows 2012的盒子上运行4节点REDIS CLUSTER。

我的设置是1个Master和3个Slave。当我通过服务组件结束主服务时,我的所有奴隶都不会自动推销自己。我如何让奴隶认识到师父失败并在他们看到失败后立即进行推广。下面是我的Redis配置。这是所有节点的相同Config文件,唯一的区别是每个节点的端口都已更改

port 30002 cluster-enabled yes cluster-config-file nodes.conf appendonly yes loglevel notice logfile "log" syslog-enabled yes syslog-ident redis maxmemory 200mb maxmemory-policy volatile-ttl

修改

我需要提供哪些其他信息才能更轻松地帮助修复。

编辑2

我的最终游戏是一个redis集群,我希望这个集群有1个主服务器和3个从服务器。我希望群集超过1 Master和3 Slave的设置的原因是,我想避免安装REDIS Sentinel。我希望群集将奴隶推广到主人,而不是redis sentinel这样做。

我的安装过程如下

  • 创建4个文件夹(A,B,C,D)
  • 在每个文件夹中复制REDIS 64 msi for windows
  • 在文件夹A,B,C,D中放入配置文件,就像上面的那个但不同的端口
  • 使用文件夹A,B,C,D
  • 安装redis服务
  • 启动所有服务
  • 对文件夹A,B,C,D
  • 执行Redis Meetup
  • 将文件夹A的复制添加到文件夹B,C,D
  • 将所有密钥分配给文件夹A上的redis实例

vo群集设置,其中FOLDER A为主,B,C,D为A的从属。现在唯一的问题是,当A下降时,没有任何从属(B,C,D)自动提升。

修改

主人的redis.conf文件

port 30001 cluster-enabled yes cluster-config-file nodes.conf appendonly yes loglevel notice logfile "log" syslog-enabled yes syslog-ident redis maxmemory 200mb maxmemory-policy volatile-ttl

在运行sc stop redismasteralpha

之前输出群集节点
05a73c800cccfd8b11d33232887570c52a326afe 10.144.62.3:30002 slave 20be3e69195744aa379124d19a836650c72c23ba 0 1478637832268 5 connected
20be3e69195744aa379124d19a836650c72c23ba 10.144.62.3:30001 master - 0 1478637837736 5 connected 0-16383
d60d3d0a9f12ef37c997fe44389996d8c7f19c2c 10.144.62.3:30000 myself,slave 20be3e69195744aa379124d19a836650c72c23ba 0 0 1 connected
fda22db5ed5d25e2a8fba82122b47818fba248ce 10.144.62.3:30003 slave 20be3e69195744aa379124d19a836650c72c23ba 0 1478637836644 5 connected
停止服务后

05a73c800cccfd8b11d33232887570c52a326afe 10.144.62.3:30002 myself,slave 20be3e69195744aa379124d19a836650c72c23ba 0 0 3 connected
d60d3d0a9f12ef37c997fe44389996d8c7f19c2c 10.144.62.3:30000 slave,fail 20be3e69195744aa379124d19a836650c72c23ba 1478637948956 1478637947808 5 disconnected
fda22db5ed5d25e2a8fba82122b47818fba248ce 10.144.62.3:30003 slave 20be3e69195744aa379124d19a836650c72c23ba 0 1478638078833 5 connected
20be3e69195744aa379124d19a836650c72c23ba 10.144.62.3:30001 master,fail? - 1478638034799 1478638031628 5 connected 0-16383

无论我等待多久,master,fail状态都不会改变

服务停止后的群集信息

cluster_state:fail

cluster_slots_assigned:16384

cluster_slots_ok:0

cluster_slots_pfail:16384

cluster_slots_fail:0

cluster_known_nodes:4

cluster_size:1

cluster_current_epoch:5

cluster_my_epoch:5

cluster_stats_messages_sent:1075189

cluster_stats_messages_received:930887

1 个答案:

答案 0 :(得分:2)

据我所知,redis群集不会少于3个主人。

请查看redis cluster tutorial上的这条说明:

  

请注意,按预期工作的最小群集需要   包含至少三个主节点。对于你的第一次测试,它是   强烈建议启动一个带有三个主控的六节点集群   三个奴隶。