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 宕机并带走了我们的应用程序。未来如何缓解这种情况?的主要内容,如果未能解决你的问题,请参考以下文章