gpt4 book ai didi

redis - Redis Dual Masters在故障期间暂时恢复

转载 作者:可可西里 更新时间:2023-11-01 11:42:02 26 4
gpt4 key购买 nike

我们有三个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服务器(service redis server stop),哨兵会快速检测到主服务器上的redis已关闭,并将node2或node3提升为主服务器(正是我们想要/期望的)。
现在假设我回到节点1并再次启动它(service redis server start)。如果我发布“redis cli info grep^role”,我看到的是几秒钟(10-15秒)node1仍然认为它是一个主节点。
因此,我们在很短的一段时间内最终得到了双硕士学位。几秒钟后,哨兵们终于解决了问题,诺德1被降级为奴隶。不过,我认为拥有双主机(甚至几秒钟)可能会导致数据完整性问题。
在恢复过程中发送给node1的数据如果仍然认为它是主节点,然后降级为从节点,会发生什么情况?发送给它的数据丢失了吗?
我们有什么办法可以避免这件事吗?redis服务器是否有一个设置,在sentinal通知其是否为从/主服务器之前不接受连接?我们还能怎么处理呢?
谢谢
布拉德

最佳答案

对我们如何解决这个问题感到好奇的人。请参阅以下有关GitHub的讨论:https://github.com/antirez/redis/issues/1813
基本上,我们设置了一个xinetd http服务,该服务由一个bash shell脚本组成,该脚本查询sentinal并将状态报告回负载平衡器。

关于redis - Redis Dual Masters在故障期间暂时恢复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24192417/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com