1.2. 断路器设计模式


断路器模式旨在处理服务架构中的故障,并防止多个系统出现级联故障。断路器可以充当客户端功能的代理,该代理将请求发送到可能失败的远程服务端点。您可以将发送到远程服务端点的任何请求嵌套在断路器对象中。然后,断路器调用远程服务并监控其状态。如果故障数量达到指定的百分比阈值,则触发断路器。然后,断路器确保对远程服务的任何进一步请求都会被自动阻止,并带有错误消息或回退响应。

根据断路器设计模式,断路器在任何特定时间具有以下状态之一:

关闭
失败的数量低于可触发断路器的指定百分比阈值。您可以将百分比阈值定义为传递给 Node.js 应用中的断路器的可选参数。默认百分比阈值为 50%。当故障数量低且断路器 关闭时,客户端功能可以继续向远程服务端点发送请求。
Open
故障数量已达到触发断路器的指定百分比阈值。例如,基于默认选项,如果 50% 的请求失败,断路器将变为 开状态。然后,断路器在指定超时期间阻止对远程服务端点的所有调用,其中包含错误消息或回退响应。您可以将超时周期定义为传递给 Node.js 应用中的断路器的可选参数。默认超时时间为 30 秒。
半开
指定的超时时间已结束。例如,基于默认选项,超时时间结束,断路器在 30 秒后变为 半开状态。然后,断路器尝试向远程服务端点发送有限数量的测试调用。如果测试调用成功,断路器进入 路状态,并且客户端功能可以继续向远程服务发送请求。但是,如果测试调用失败,断路器恢复为 开状态,并且继续阻止对指定超时周期的远程服务的所有调用。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.