3节点Redis群集中的两个故障支持

问题描述

我们有一个3节点的Redis集群,其中Redis和哨兵在所有三个节点上运行。 节点之一是主节点,另外两个是副本节点。

在某些情况下,一个节点发生故障,在这些情况下,其中一个副本节点被提升为主节点而没有任何问题。

现在我们有一个用例,当两个节点出现故障时,我们希望将剩余的最后一个节点提升为主节点。我们不希望仲裁设置为1,因为这可能会导致一些不必要的故障转移。请提出可能的解决方案。

解决方法

假设您在3个节点中的每个节点上同时运行Sentinel和Redis进程,则您的部署只能处理单个节点的故障。 这是因为在两个节点发生故障之后,只有一个正在运行的Sentinel进程(如您所说)无法形成仲裁。

如果您需要支持2个并发节点故障,则需要增加群集的大小,并且最好将Sentinel节点与Redis节点分开。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...