redis sentinel与群集中的服务器不同步

时间:2015-03-27 09:51:30

标签: redis master-slave redis-sentinel

我们设置了许多redis(2.8)服务器(比方说4)和尽可能多的redis哨兵。在启动每台机器时,我们通过命令行将预选机器设置为主机,其余所有机器都作为主机。并且哨兵都监视着这些机器。客户端首先连接到本地标记并检索主服务器的IP地址,然后连接到那里。

此设置大部分时间都没有问题,但有时候哨兵与服务器不同步。如果我命名机器A,B,C和D - 哨兵会认为B是主人,而redis服务器都连接到A作为主人。在B上关闭redis服务器也没有帮助。我不得不将其手动降下来并进行“哨兵故障转移”#34;在A上解决问题。问题是 1.导致这种情况发生的原因是什么,以最简单,最快捷的方式解决这个问题? 2.什么是最好的配置 - 还有比这更好的东西吗?

1 个答案:

答案 0 :(得分:1)

你唯一一次设置主人是第一次。一旦sentinel接管了复制管理,你就应该让它做到。这包括重启。不要使用命令行来设置复制。让sentinel和redis管理它。这就是你遇到问题的原因 - 你告诉哨兵它是权威的,但是你告诉Redis服务器忽略了哨兵。

Sentinel将状态存储在其Config文件中,因此重新启动时可以恢复上次配置。所以即使重新启动,让哨兵做它的工作。

另外,如果您有4台服务器(具体而言,不是“让我们说”),您应该在Sentinel的监控语句中运行三个法定数量。如果法定人数达到两个,你就可以找到两个主人