【问题标题】:Automatic Failover to Promoted Redis Slave using Redis Cluster使用 Redis Cluster 自动故障转移到升级的 Redis Slave
【发布时间】:2019-05-18 05:18:40
【问题描述】:

配置:三个redis集群分区跨越三组一主一从。 当 Master 宕机时,Lettuce 立即检测到中断并开始重试。但是,Lettuce 没有检测到关联的 slave 已将自己提升为 master,并继续使用无法访问的旧 master 重试并最终超时。尝试设置各种拓扑刷新选项无济于事。

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

【问题讨论】:

  • Lettuce immediately detects the outage and begins retrying 谈论重新连接这里?

标签: redis redis-cluster lettuce


【解决方案1】:

与 Redis Sentinel 相比,Redis Cluster 在配置更新传播方面受到限制。 Redis Sentinel 通过 Pub/Sub 传递更新,而 Redis Cluster 将轮询作为唯一选项。

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

您可以通过ClusterClientOptions 进行配置。

定期和自适应刷新试图涵盖大多数情况,这些情况大多是猜测,以补偿缺乏适当的配置更改传播。总有一些漏洞(请参阅issue #672),其中 Lettuce 比实际拓扑更改更快。这使得 Lettuce 的拓扑视图过时了,因为实际的变化发生得稍晚一些。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-25
  • 1970-01-01
  • 2021-02-27
  • 1970-01-01
  • 2016-03-19
  • 2014-10-05
  • 2023-03-26
相关资源
最近更新 更多