配置:一主一备三套redis集群分区。当Master宕机时,Lettuce会立即检测到中断并开始重试。但是,Lettuce不会检测到关联的从节点已将自己提升为主节点,并继续使用无法访问并最终超时的旧主节点进行重试。已尝试设置各种拓扑刷新选项,但无济于事。
建议的解决方案:在第一次重试失败(这是连续第二次重试失败)之后,使用所提供的任何节点的拓扑重新运行拓扑刷新(用于在初始化期间派生拓扑)(因为它们都具有相同的拓扑信息)。这将重新建立到当前主服务器的连接。然后在先前失败的分区上重试失败的操作。
发布于 2019-01-02 16:43:46
与Redis Sentinel相比,Redis集群在配置更新传播方面存在局限性。Redis Sentinel通过Pub/Sub传递更新,而Redis Cluster将轮询作为唯一选项。
Lettuce支持周期性和自适应cluster topology refresh触发器。定期更新拓扑,自适应刷新监听断开连接和群集重定向。
您可以通过ClusterClientOptions
对两者进行配置。
周期性和自适应刷新试图覆盖大多数情况,这些情况主要是猜测,以弥补缺乏适当的配置更改传播。总会有一些漏洞(参见issue #672),在这些漏洞中,生菜比实际的拓扑更改速度更快。这使得Lettuce具有过时的拓扑视图,因为实际的更改会在稍后发生。
https://stackoverflow.com/questions/53822022
复制相似问题