使用Redis群集自动故障转移到提升的Redis从站

时间:2018-12-17 19:45:26

标签: redis redis-cluster lettuce

配置:三个Redis集群分区,跨越三个组,一个主控和一个从属。 当主服务器故障时,生菜立即检测到中断并开始重试。但是,Lettuce不会检测到关联的从属服务器已经提升为主服务器,并继续使用无法访问的旧主服务器继续重试,并最终超时。尝试将各种拓扑刷新选项设置为无效。

建议的解决方案:第一次重试失败(连续第二次重试失败)后,使用提供的任何节点上的拓扑重新运行拓扑刷新(用于在初始化期间派生拓扑)(因为它们都具有相同的拓扑信息)。这将重新建立与当前主站的连接。然后在先前失败的分区上重试失败的操作。

1 个答案:

答案 0 :(得分:0)

与Redis Sentinel相比,Redis Cluster在配置更新传播方面受到限制。 Redis Sentinel通过发布/订阅通信更新,而Redis Cluster将轮询作为唯一选择。

Lettuce支持周期性和自适应cluster topology refresh触发器。定期进行拓扑更新,自适应刷新侦听断开连接和群集重定向。

您可以通过ClusterClientOptions进行配置。

定期和自适应刷新尝试覆盖大多数情况,这些情况大多是猜测工作,可弥补缺乏适当的配置更改传播的问题。总是存在漏洞(请参阅issue #672),在这些漏洞中,Lettuce的速度比实际拓扑更改的速度快。这样一来,Lettuce的拓扑视图就会过时,因为实际更改会在稍后发生。