全部产品

服务熔断

更新时间:2021-02-09 11:17

某个服务故障或者异常时,如果该服务触发熔断,可以防止其他调用方一直等待超时或者故障,从而防止雪崩。

您通过下述操作让故障处于可控范围:

  • 通过监控或者服务拓扑查看到某个服务延时较大、错误率较多后,进行服务治理。

  • 选择异常服务后,进行服务熔断自动设置,可自定义熔断条件,例如:在某个时间段内(例如 10s)请求数达到某个值,且错误率或者延时达到某个值。

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

熔断原理图服务熔断.png

前置条件

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

熔断操作

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

查询熔断规则

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

  • 应用名

  • 熔断规则名

  • 熔断服务名

添加熔断规则

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

  • 规则名称:自定义的熔断规则名。支持中、英文、数字及下划线。

  • 应用:待熔断的应用。通常,一个应用会对应多个服务。

  • 熔断方向:可选服务端或客户端。

  • 熔断服务:有下述 2 种方式来选择已经发布的服务。

    • 从下拉框选择。

    • 通过右侧的 切换输入模式,手动输入服务名称。该方式为兜底机制,适用于无法从下拉框中选择熔断服务的场景。

  • 熔断类型:有下述 2 种不同类型。

    • 错误比率:熔断时间窗口内的请求数阈值错误率大于错误率阈值,从而触发熔断。

    • 平均 RT:熔断时间窗口内的请求数阈值大于平均 RT 阈值,从而触发熔断。

  • 运行模式:分为 拦截模式观察者模式。2 者的主要区别在于触发熔断或者降级时的处理不同:

    • 拦截模式:直接使服务快速失败。

    • 观察者模式:只记录日志。

  • 熔断配置:可以添加流量的精确匹配条件。各匹配规则之间是 的关系。规则主要包括下述内容:

    • 字段:包括系统字段和请求头。

    • 字段名:包括流量类型、调用方应用名、调用方 IP、服务方应用名。

    • 逻辑:包括等于、不等于、属于、不属于、正则。

    • 字段值:包括调用方应用名、调用方 IP、服务方应用名、服务方服务名、服务方方法名。

编辑熔断规则

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

  • 开启、关闭熔断规则生效的状态。

  • 编辑熔断规则:编辑正在生效的规则会实时生效。

  • 删除熔断规则:删除正在生效的规则会实时生效。

服务熔断管理.png