【问题标题】:redis cluster recovery downtime when master goes down当master宕机时redis集群恢复宕机时间
【发布时间】:2020-10-08 22:21:14
【问题描述】:

当 Redis 集群中的 master 宕机时,Redis 将等待节点超时以将 slave 提升为 master。从属升级到主控可能需要额外的时间。在 master 下降到 slave 升级为 master 期间,写入/读取,尤其是写入将失败。如何确保零停机?

【问题讨论】:

    标签: redis


    【解决方案1】:

    我认为这是大多数数据库的常见问题。假设您有一个 mongo 副本集,并且 master 出现故障,slave 需要一段时间才能提升,并且您丢失了写入,与 mongo shard 或 mysql 相同。

    即使 redis 可以提供即时故障转移(这是不可能的),也无法保证您的写入,除非您在每次操作中使用 AOF 并写入磁盘,但这会非常慢并且破坏了 redis 的全部目的。

    接近更好的写入保证的一种解决方案是将数据推送到队列中,例如 kafka,然后异步写入 redis 或任何其他数据存储。但是你又引入了一个堆栈,我们也不得不担心它的故障转移。

    所以,我认为我们应该尝试将 redis 视为缓存,而不是永久数据存储。

    【讨论】:

    • 感谢您的洞察力。就我而言,我使用 redis 作为缓存,但长期存储的数据是通过 redis 转储持久化的。因此,如果用户数据(这是一个恒定流)没有到达 redis,我们将永远丢失数据。你建议改变这个设计吗?我应该坚持到 redis 之外的长期存储吗?
    猜你喜欢
    • 1970-01-01
    • 2016-04-15
    • 2012-08-11
    • 2019-05-04
    • 1970-01-01
    • 1970-01-01
    • 2017-08-12
    • 1970-01-01
    • 2016-03-22
    相关资源
    最近更新 更多