当主服务器在Redis群集中发生故障时,Redis将等待节点超时将从服务器升级为主服务器。从属提升可能要花费额外的时间才能掌握。在主机下降到从机升级为主机的这段时间内,写入/读取,尤其是写入将失败。如何确保零停机时间?
最佳答案
我认为这是大多数数据库的常见问题。假设您有一个mongo复制集,而master崩溃了,升级slave会花费一些时间,并且您丢失了写操作,与mongo shard或mysql相同。
即使redis可以提供即时故障转移(这是不可能的),也不能保证您的写入,除非您在每个操作上都使用AOF并向磁盘写入数据,但这会非常慢,并且无法实现redis的全部目的。
一种更接近写入保证的解决方案是将数据推送到队列(例如kafka)并异步写入redis或任何其他数据存储。但是随后您又引入了一个堆栈,我们也必须担心其故障转移。
因此,我认为我们应该尝试将Redis视为缓存,而不是作为永久数据存储。
关于redis - 当主服务器宕机时,Redis群集恢复停机时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62457111/