【问题标题】:2/3 sentinel instances in same data center同一数据中心内的 2/3 哨兵实例
【发布时间】:2018-01-09 23:08:50
【问题描述】:

假设我有两个数据中心,每个数据中心都运行一个 redis 实例。此外,我在这两个数据中心运行了三个哨兵实例,每个实例在单独的机器上,但其中两个在同一个数据中心。

这是个问题吗?

在最坏的情况下,如果第一个数据中心不可用,则三个哨兵实例中的两个 + 一个 redis 实例同时关闭。如果这个 redis 实例是主实例,则会故障转移到另一个数据中心。

但是如果数据中心 1 再次可用会怎样?我猜这将是新配置:

Data center 1 - Sentinel 1 -> Points to master in data center 1
Data center 1 - Sentinel 2 -> Points to master in data center 1
Data center 2 - Sentinel 1 -> Points to master in data center 2

redis会再次将数据中心1的master设置为新的master吗?如果是这样,在数据中心 2 的主服务器上同时发生的数据库更改会发生什么情况?

【问题讨论】:

    标签: redis redis-sentinel


    【解决方案1】:

    如果有两个哨兵的数据中心宕机,并且主Redis节点也宕机,那么剩下的哨兵节点将无法选举新的主Redis或提升另一个数据中心的Redis服务器为主。大多数哨兵必须同意主 Redis 的失败。他们还必须选举一个哨兵进程作为领导者,以将活动的 Redis 服务器提升为 master;为此,大多数 Sentinel 进程也必须可用。在 3 个 Sentinel 部署的情况下,大多数为 2 个,当其中 2 个关闭时,主 Redis 不会发生故障转移。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多