Redis 宕机并带走了我们的应用程序。未来如何缓解这种情况?

Posted

技术标签:

【中文标题】Redis 宕机并带走了我们的应用程序。未来如何缓解这种情况?【英文标题】:Redis went down and took our app with it. How to mitigate this in the future? 【发布时间】:2021-12-27 11:42:50 【问题描述】:

今天,我们的 Heroku 托管应用出现故障,这意味着我们公司无法访问或使用我们的任何内部工具。这至少可以说是令人担忧的。

经过多次调试,结果是 Redis 因英国的 AWS 服务器崩溃而崩溃……欢乐时光。我们仅将 Redis 用于 actioncable,因此一个连接工具的简单崩溃会导致整个应用程序崩溃,这似乎很奇怪。

以前有没有人遇到过这样的问题,并且知道将来有办法缓解这种情况?

【问题讨论】:

【参考方案1】:

欢迎来到俱乐部 :) 有一些策略可以防止将来出现这种情况:

    一般来说,您需要在您的 redis 客户端上实现断路器模式。

实现取决于您的应用程序架构,很难说使用它 - 它会 100% 匹配您的设计。

简而言之:您描述了规则,这些规则控制何时根本不发出所有到 Redis 的流量。比如:10 次连接在 30 秒内失败。 发生这种情况时,流量不会打开,但会在一段时间后检查 Redis 是否返回,一旦返回 - 流量将被发送到 redis。

    使用 Redis Sentinel 或 Redis Cluster(两者都需要您的 redis 客户端支持)。在这种情况下,您有一些故障转移模式 - 在 Redis 网站上阅读更多信息。

【讨论】:

以上是关于Redis 宕机并带走了我们的应用程序。未来如何缓解这种情况?的主要内容,如果未能解决你的问题,请参考以下文章

近千节点的Redis集群运维经验总结

redis宕机如何解决?如果是项目上线的宕机呢?

12.Redis系列集群方案1- Sentinel

MYSQL数据库高可用方案探究

宕机后,Redis如何实现快速恢复?

头条二面:宕机后,Redis如何实现快速恢复?