全部产品

服务熔断

更新时间:2020-12-07 10:10

某个服务故障或者异常时,如果该服务触发熔断,可以防止其他调用方一直等待超时或者故障,从而防止雪崩。您还通过下述操作让故障处于可控范围:

  • 通过监控或者服务拓扑查看到某个服务延时较大、错误率较多后,进行服务治理。
  • 选择异常服务后,进行服务熔断自动设置,可自定义熔断条件,例如:在某个时间段内(例如 10s)请求数达到某个值,且错误率或者延时达到某个值。

满足条件,则可以触发熔断,还可以持续测试该服务,进行自动熔断恢复。

熔断原理图
服务熔断.png

前置条件

请确保 SOFABoot 版本在 3.3.3 及以上。有关 SOFABoot 的版本信息,详见 SOFABoot 版本说明

熔断操作

SOFAStack 平台 > 中间件 > 微服务平台 > 微服务 > 页面,点击 服务治理 标签,进入 服务治理 页面。选择 服务熔断 标签,可以对熔断规则进行查询、添加和编辑。

查询熔断规则

可以根据下述内容,对熔断规则进行查询:

  • 应用名
  • 熔断规则名
  • 熔断服务名

添加熔断规则

点击 添加熔断规则,可自定义熔断规则。熔断规则.png

  • 规则名称:自定义的熔断规则名。支持中、英文、数字及下划线。
  • 应用:待熔断的应用。通常,一个应用会对应多个服务。
  • 熔断方向:可选服务端或客户端。
  • 熔断服务:有下述 2 种方式来选择已经发布的服务。
    • 从下拉框选择。
    • 通过右侧的 切换输入模式,手动输入服务名称。该方式为兜底机制,适用于无法从下拉框中选择熔断服务的场景。
  • 熔断类型:有下述 2 种不同类型。
    • 错误比率:熔断时间窗口内的请求数阈值错误率大于错误率阈值,从而触发熔断。
    • 平均 RT:熔断时间窗口内的请求数阈值大于平均 RT 阈值,从而触发熔断。
  • 运行模式:分为 拦截模式观察者模式。2 者的主要区别在于触发熔断或者降级时的处理不同:
    • 拦截模式:直接使服务快速失败。
    • 观察者模式:只记录日志。
  • 熔断配置:可以添加流量的精确匹配条件。各匹配规则之间是 的关系。规则主要包括下述内容:
    • 字段:包括系统字段和请求头。
    • 字段名:包括流量类型、调用方应用名、调用方 IP、服务方应用名。
    • 逻辑:包括等于、不等于、属于、不属于、正则。
    • 字段值:包括调用方应用名、调用方 IP、服务方应用名、服务方服务名、服务方方法名。

编辑熔断规则

在服务熔断页,点击页面下方熔断规则列表左侧的(加号.png),可以进行下述操作:

  • 开启、关闭熔断规则生效的状态。
  • 编辑熔断规则:编辑正在生效的规则会实时生效。
  • 删除熔断规则:删除正在生效的规则会实时生效。

服务熔断管理.png