使用Redis Sentinel支持从节点的从节点复制?

8
我们有两个数据中心,每个中心都有两个 Redis 实例。通常它们被复制为链式结构。
NY1(主)-> NY2(从)-> CO1(从)-> CO2(从)
其中,NY 代表纽约,CO 代表我们的备份数据中心科罗拉多州。为了节省广域网带宽,我们不希望 CO1 和 CO2 都连接到 NY1。相反,我们需要一种链式配置方式,即只有一个从属直接连接到主服务器,其余从属均为“从属的从属”。
这种复制布局可以使用 Sentinel 来维护吗?或者所有从属都必须是主服务器的从属,而不是从属的从属?
1个回答

1

目前Sentinel不支持此类配置,因为Sentinel会重写所有受监视的Redis系统的配置。

例如,如果您按照描述设置了一个系统,并且有sentinel监视所有主机,如果主节点出现故障并强制执行故障转移,则每个Redis主机将被重新配置。其中一个副本(任何一个)将成为新的主服务器,其他副本将成为新主服务器的副本。当旧的主服务器恢复上线时,它将被重新配置为新主服务器的副本。

但是,通常可以使Redis按照所需方式工作。通过将replicaof配置值设置为副本,您可以拥有所需数量的副本的副本。

个人而言,我仍然会使用Sentinel来监视主服务器和“原始”副本(那些从主服务器本身复制的副本)。这可能导致其中一个原始副本变成新主服务器,因此我会启用通知选项。这告诉Sentinel在故障转移发生时调用脚本。在该脚本中,您可以发送电子邮件、触发Slack webhook或执行其他任何操作。当我收到通知时,我会手动将主机重新配置为所需格式,但是新主服务器已经更换。这种方式可能有点麻烦,但我仍然可以自动故障转移主服务器和原始副本,从而使我的应用程序继续工作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接