我们有三个 redis 服务器设置如下:
Node1: Default Redis Master & Running Redis Sentinel Software
Node2: Redis Slave & Running Redis Sentinel Software
Node3: Redis Slave & Running Redis Sentinel Software
如果我去node1并发出命令停止redis-server(service redis-server stop),哨兵很快检测到Master上的redis已经宕机并提升Node2或Node3成为Master(正是我们想要的/预计)。
现在假设我回到节点一并重新启动它(服务 redis-server 启动)。如果我发出“redis-cli info | grep ^role”,我看到的是几秒钟(10-15 秒)Node1 仍然认为它是 Master。
因此,我们最终在短时间内获得了双硕士学位。最终,几秒钟后,哨兵解决了情况,Node1 被降级为奴隶。但是,我认为拥有双硕士(即使是几秒钟)可能会导致数据完整性问题。
在恢复期间发送到 Node1 的数据仍然认为它是主节点,然后降级为从节点时会发生什么情况。发送给它的数据会丢失吗?
我们有什么办法可以避免这种情况吗?在哨兵告诉它天气它是从/主之前,redis-server 是否有设置不接受连接?我们还能如何处理这个问题?
谢谢布拉德