我正在建立我的第一个Redis框架,到目前为止我有以下内容:
Server1:
- Redis master
- 3 Redis Sentinels (quorum set to 2)
Server2:
- Redis slave
- 3 Redis Sentinels (quorum set to 2)主和从似乎工作正常,数据从主到从同步。当我安装和启动哨兵时,它们似乎运行良好,因为如果我连接到其中任何一个,并运行 sentinels ,它将显示哨兵指向我的Redis主站,并显示各种属性。
然而,实际的故障转移似乎不起作用。例如,如果我连接到我的Redis主服务器并运行调试分段故障以使其失败,则不会发生到从服务器的故障转移。没有一个哨兵会记录任何信息,所以看起来它们并没有真正的连接。以下是我的哨兵的配置:
port 26381
sentinel monitor redismaster ServerName 26380 2
sentinel down-after-milliseconds redismaster 10000
sentinel failover-timeout redismaster 180000
sentinel parallel-syncs redismaster 1
logfile "nodes/sentinel1/sentinel.log"如您所见,这个哨兵在26381上运行(随后的哨兵运行在26382和26383上)。我的红宝石大师在26380上运行。所有的端口都是开放的,名称/ it解析正确,等等,所以我不认为这是一个基础设施问题。如果有用的话,我正在运行Redis (2.8.17),这是我从MS页面下载的。
有没有人对什么可能是问题有任何想法,或者对如何排除故障有任何建议?对于在Windows上设置Redis的H.A.实例,我很难找到准确的文档,因此,任何有助于解决这类问题的命令都将不胜感激。
发布于 2015-03-10 14:06:36
我想出来了。我在问题中忽略了一件事,那就是我的主配置文件中指定了配置,所以我的客户端必须提供一个密码才能连接。在我的哨兵配置中,我漏掉了这个,并且没有提供密码。哨兵的记录并没有说明这一点,所以对我来说并不明显。一旦我加了这个:
sentinel auth-pass redismaster <myPassword>在我的哨兵配置文件中,一切都开始正常工作。
https://stackoverflow.com/questions/28952553
复制相似问题