我有 3 个复制的 Redis 实例在 3 台不同的机器上运行:A、B 和 C。 我最初选择 A 作为我的主人。 我还有 3 个哨兵(每台机器上 1 个)监视 A。
如果 A 出现故障,我希望哨兵选择一个特定的主节点来故障转移到(比如 B)。 有没有一种方法可以选择特定的 master 而不是将其留给哨兵的选举机制?
由于我在任何地方都找不到这个问题,我认为这不是标准程序,所以我将解释其背后的原因: 我的应用程序在负载均衡器后面的 A、B 和 C 上运行。 主服务器使用其本地 Redis 数据库,该数据库被复制到其他两个从服务器。
当A出现故障时,负载均衡器可以选择B作为master,而Redis sentinels可以选择C作为Redis master。 正如我刚才所说,我需要实例是本地的,所以这就是我需要将 B 指定为 Redis master 的原因。
最佳答案
有一个名为“slave-priority”的 Redis 配置设置可以帮助您。
关于Redis哨兵故障转移,选择特定的master,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40362929/