配置熔断规则

MSE的熔断规则可以监控应用内部或者下游依赖的响应时间或异常比例。当达到指定的阈值时,MSE会立即降低下游依赖的优先级。在指定的时间内,系统不会调用该异常资源,避免应用的不稳定运行,从而保障应用高可用性。指定时间过后,系统会重新恢复对该资源的调用。本文介绍如何配置熔断规则以及规则的配置示例。

前提条件

背景信息

除流量控制外,对调用链路中不稳定的方法或者下游依赖进行熔断也是流量防护的重要措施之一。由于调用关系的复杂性,如果调用链路中的某一环节出现错误,会导致此请求失败,甚至放大不稳定性,导致整个链路无法正常服务。熔断功能会在调用链路中某个方法出现不稳定时(例如某方法出现Timeout或异常比例升高),对这个方法的调用进行限制,让请求快速失败,避免此错误影响整个链路。关于熔断的相关信息,请参见下图。

image

熔断规则配置通常用于弱依赖降级场景。更多信息,请参见弱依赖降级

关于配置熔断规则的场景示例,请参见常用场景1:慢调用熔断示例常用场景2:异常熔断示例

功能入口

  1. 登录MSE治理中心控制台,并在顶部菜单栏选择地域。

  2. 在左侧导航栏,选择治理中心 > 应用治理

  3. 应用列表页面单击目标应用的资源卡片,选择以下任意一种方法新建流控规则。

    • 在左侧导航栏,单击接口详情,切换至客户端接口列表。选择具体接口后,单击服务熔断页签,然后单击新增熔断规则

    • 在左侧导航栏,单击流量治理。单击流量防护页签,单击熔断规则,然后单击新增熔断规则

  4. 新增熔断防护规则对话框中配置规则信息,然后单击新增

    详细的参数说明,请参见下文规则详情

规则详情

新增熔断防护规则对话框的参数说明如下。

参数

描述

接口名称

适用该规则的应用资源。

统计窗口时长

统计的时间窗口长度,取值范围为1秒~120分钟。

最小请求数目

触发熔断的最小请求数目,若当前统计窗口内的请求数小于此值,即使达到熔断条件规则也不会触发。

阈值类型

选择以慢调用比例(%)异常比例(%)作为阈值。

  • 选择以慢调用比例作为阈值,需要设置允许的慢调用RT(即最大的响应时间),请求的响应时间大于该值则统计为慢调用。

    熔断比例阈值中设置触发熔断的慢调用比例。规则开启后,在单位统计时长内请求数目大于设置的最小请求数目,并且慢调用的比例大于阈值,则接下来的熔断时长(s)内请求会自动被熔断。经过熔断时长后熔断器会进入探测恢复状态,若接下来的一个请求响应时间小于设置的慢调用RT则结束熔断,若大于设置的慢调用RT则会再次被熔断。

  • 选择以异常比例作为阈值,需要在熔断比例阈值中设置触发熔断的异常比例。

    规则开启后,在单位统计时长内业务异常数目大于设置的最小请求数目,并且异常的比例大于阈值,则接下来的熔断时长(s)内请求会自动被熔断。

熔断时长(s)

即熔断触发后持续的时间。资源进入熔断状态后,在配置的熔断时长内,请求都会快速失败。

熔断恢复策略

熔断器进入恢复阶段(半开启状态)的恢复策略。

  • 单次探测恢复:经过熔断时长后,熔断器会对接下来的一个请求进行探测,若该请求符合预期(不为慢调用或没有异常),则结束熔断;否则重新回到熔断阶段。

  • 渐进式恢复:需要设置恢复阶段数每步最小通过数目

    • 经过熔断时长后,熔断器按照设定的恢复阶段数进行渐进式恢复,若该阶段内请求达到一定量即每步最小通过数目,则触发检查。检查的请求若都未超过阈值,则逐步提高允许通过的请求比例,直到请求完全恢复;若某一步的指标超出阈值,则重新回到熔断阶段。

    • 请求比例T=100/恢复阶段数N,则第一阶段请求比例为T,第二阶段为2T,直到100%。

    • 例如恢复阶段数为3,每步最小通过数目为5,则三个阶段分别按照33%、67%和100%的比例放入请求,当每阶段的请求数目大于等于5时进行检查,若请求的指标未超阈值则进入下一恢复阶段,直至完全恢复。

常用场景1:慢调用熔断示例

例如调用第三方服务,但响应时间太慢,会影响当前接口,所以对其进行熔断操作。

新增熔断防护规则对话框中配置以下示例规则信息。

参数

示例值

描述

接口名称

test

接口名称。

统计窗口时长

1

统计时长为1秒。

最小请求数目

10

触发熔断的最小请求数目为10。

阈值类型

慢调用比例

选择以慢调用比例作为阈值。

慢调用RT

1000

超过1000毫秒则判定为慢请求。

熔断比例阈值

80%

触发熔断的慢调用比例阈值为80%。

熔断时长(s)

10

熔断时长有10秒。

熔断恢复策略

单次探测恢复

经过熔断时长后,熔断器会对接下来的一个请求进行探测,若该请求符合预期(不为慢调用或没有异常),则结束熔断;否则重新回到熔断阶段。

规则开启后,在统计时长1秒内,当请求数目大于10,并且慢调用的比例大于80%的时候,则在接下来10秒的熔断时长内,请求都会快速失败。经过10秒后熔断器会进入探测恢复状态,若接下来的一个请求响应时间小于设置的1000 ms则结束熔断,若大于1000 ms则会再次被熔断。

常用场景2:异常熔断示例

例如第三方内容展示时,系统会出现异常,当异常比例较高时,可以对其进行熔断操作,以保证更好的用户体验。

新增熔断防护规则对话框中配置以下示例规则信息。

参数

示例值

描述

接口名称

test

接口名称。

统计窗口时长

1

统计时长为1秒。

最小请求数目

10

触发熔断的最小请求数目为10。

阈值类型

异常比例

选择以异常比例作为阈值。

熔断比例阈值

80%

触发熔断的异常比例阈值为80%。

熔断时长(s)

10

熔断时长有10秒。

熔断恢复策略

单次探测恢复

经过熔断时长后,熔断器会对接下来的一个请求进行探测,若该请求符合预期(不为慢调用或没有异常),则结束熔断;否则重新回到熔断阶段。

规则开启后,在统计时长1秒内,当请求数目大于10,并且异常的比例大于80%的时候,则在接下来10秒的熔断时长内,请求都会快速失败。经过10秒后熔断器会进入探测恢复状态,若接下来的一个请求没有异常则结束熔断,否则会再次熔断。