【发布时间】:2020-10-08 22:21:14
【问题描述】:
当 Redis 集群中的 master 宕机时,Redis 将等待节点超时以将 slave 提升为 master。从属升级到主控可能需要额外的时间。在 master 下降到 slave 升级为 master 期间,写入/读取,尤其是写入将失败。如何确保零停机?
【问题讨论】:
标签: redis
当 Redis 集群中的 master 宕机时,Redis 将等待节点超时以将 slave 提升为 master。从属升级到主控可能需要额外的时间。在 master 下降到 slave 升级为 master 期间,写入/读取,尤其是写入将失败。如何确保零停机?
【问题讨论】:
标签: redis
我认为这是大多数数据库的常见问题。假设您有一个 mongo 副本集,并且 master 出现故障,slave 需要一段时间才能提升,并且您丢失了写入,与 mongo shard 或 mysql 相同。
即使 redis 可以提供即时故障转移(这是不可能的),也无法保证您的写入,除非您在每次操作中使用 AOF 并写入磁盘,但这会非常慢并且破坏了 redis 的全部目的。
接近更好的写入保证的一种解决方案是将数据推送到队列中,例如 kafka,然后异步写入 redis 或任何其他数据存储。但是你又引入了一个堆栈,我们也不得不担心它的故障转移。
所以,我认为我们应该尝试将 redis 视为缓存,而不是永久数据存储。
【讨论】: