【发布时间】:2016-01-06 12:45:24
【问题描述】:
我们有一个带有两个 redis 服务器的 redis 配置。我们还有 3 个哨兵来监控这两个实例并在需要时启动故障转移。
我们目前有一个流程,我们必须定期在 redis 服务器上执行 FLUSHALL。这是一个阻塞操作,比我们为哨兵分配的超时时间要长。换句话说,我们的哨兵配置是:
sentinel down-after-milliseconds OurMasterName 5000
在服务器上执行 redis-cli FLUSHALL 需要 > 5000 毫秒,因此哨兵启动故障转移。
我们承认执行 FLUSHALL 不是很好,我们也知道我们可以将毫秒后下降时间增加到但出于本问题的目的,假设这些都不是选项。
问题是:我们如何在 FLUSHALL 阻塞超过 5000 毫秒而不让哨兵启动故障转移的情况下执行 FLUSHALL(或等效操作)?有没有人遇到并解决过这个问题?
【问题讨论】:
-
如果您在某个云平台上,您可以创建一个新实例:准备好机器映像或使用一些 devops 工具
-
@LiviuCostea 我认为这可能是正确的选择。如果您可以参考更详细地描述其工作原理的内容,我将很乐意接受您的回答。
-
如果您使用的是 AWS 或 Azure 之类的东西,那么您有用于创建新 Redis 集群的 API。启动它,用数据加载它,一旦准备好,只需修改 DNS,再次使用 API 调用 - 所以所有这些都可以由应用程序的某些部分处理。但是在本地,事情可能会变得更加复杂,因为它需要使用 ansible/chef/puppet 进行一些自动化。
-
@LiviuCostea 是的——仍然是一个合法的答案。如果你把这个放在答案表格中,我可以接受。
标签: redis sentinel redis-sentinel