sentinel哨兵模式三个哨兵在info里只显示两个

ping三个哨兵都是可以ping通的但是就是只显示两个

img

日志里的信息大概是这样,但是这个invalid addr我不明白哪里有问题,后面的值是另一个哨兵的id,正常应该不会出现这种情况的

img

sentinel.conf大体配置

img

img

【以下回答由 GPT 生成】

问题分析

从问题描述中可以看出,你在使用Redis的哨兵模式时遇到了一个问题。三个哨兵节点都可以ping通,但是在查询info信息时,却只显示了两个哨兵节点。错误日志提示是invalid addr,但是你不清楚出了什么问题。

这个问题可能是由于以下原因导致的:

  1. 哨兵节点的配置错误:可能是由于哨兵节点的配置有误导致的。
  2. 哨兵节点之间的网络通信问题:可能是由于哨兵节点之间的网络通信有问题导致的。
  3. Redis版本不兼容:可能是由于使用的Redis版本不兼容哨兵模式导致的。

为了找出具体的原因,我们可以逐步分析并解决该问题。

解决方案

  1. 检查哨兵节点的配置

首先,你需要检查每个哨兵节点的配置是否正确。确认以下配置信息是否正确设置:

  • sentinel.conf文件中的port、bind、sentinel monitor、sentinel down-after-milliseconds、sentinel failover-timeout等配置项。
  • 每个哨兵节点的配置是否完全一致。

可以通过比对每个节点的sentinel.conf文件来确认配置是否一致,如果有不一致的地方,需要将其设为一致。

示例代码:

bash # 检查哨兵节点配置 $ cat sentinel.conf

  1. 检查网络通信

确认哨兵节点之间的网络通信是否正常。可以尝试使用telnet命令测试每个哨兵节点之间的连接情况。

示例代码:

bash # 测试节点之间的连接 $ telnet <哨兵节点IP> <哨兵节点端口>

对于每个哨兵节点,都需要测试与其他哨兵节点的连接情况。确认连接是否成功,如果无法连接,可能存在防火墙等网络限制,需要进行相应的调整。

  1. 检查Redis版本兼容性

确认使用的Redis版本与哨兵模式的兼容性。可能是由于使用的Redis版本不兼容哨兵模式导致的无法显示所有哨兵节点。

可以尝试使用最新版本的Redis,并确认哨兵模式的配置是否发生了变化。

总结

以上是解决该问题的一般性步骤和注意事项。请按照以上步骤逐一排查问题,确认每个步骤是否有问题,并进行相应的解决。如果在实际操作中遇到其他问题或需要进一步帮助,请提供详细问题和错误日志,并附上相应的配置文件,以便更准确地定位问题。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

又是低级错误,在sentinel.conf中的sentinel-announce-ip 和 sentinel-announce-port的值应该是哨兵的ip和端口,而我写成了主节点的端口,写的时候我甚至自己还想了为什么这里和 sentinel monitor 都要配置一样的。。。