AHAS的熔断规则可以监控应用内部或者下游依赖的响应时间或异常比例,当达到指定的阈值时立即降低下游依赖的优先级。在指定的时间内,系统不会调用该不稳定的资源,避免应用受到影响,从而保障应用高可用性。当指定时间过后,再重新恢复对该资源的调用。
前提条件
已在AHAS应用防护中接入应用,具体操作请参见接入应用方式。
背景信息
除了流量控制以外,对调用链路中不稳定的方法或者下游依赖进行熔断也是重要措施之一。由于调用关系的复杂性,如果调用链路中的某一环节出现了错误,会导致这个请求失败,甚至会放大不稳定性,导致整个链路无法正常服务。熔断功能会在调用链路中某个方法出现不稳定时(例如某方法出现Timeout或异常比例升高),对这个方法的调用进行限制,让请求快速失败,避免此错误影响整个链路。关于熔断的相关信息,请参见熔断结构图。
熔断规则配置通常用于弱依赖降级场景,更多信息,请参见弱依赖降级。
功能入口
- 登录AHAS控制台。
- 在AHAS控制台左上角,选择应用接入的地域。
- 在控制台左侧导航栏中选择 。
- 在应用防护页面的应用卡片页签单击目标应用卡片。
- 在左侧导航栏单击应用概览,然后单击页面下方目标接口操作列中的熔断。
- 在熔断规则页签中配置规则信息。说明 慢调用比例、统计窗口时长、最小请求数目等配置项需要Java SDK版本≥1.6.0或Java Agent版本≥1.7.5。
常用场景1:慢调用熔断示例
例如调用第三方服务,但响应时间太慢,会影响当前接口,所以对其进行熔断操作。
在新增熔断规则或新增规则对话框中配置以下示例规则信息。
参数 | 示例值 | 描述 |
接口名称 | test | 接口名称。 |
统计窗口时长 | 1 | 统计时长为1秒。 |
阈值类型 | 慢调用比例 | 选择以慢调用比例作为阈值。 |
慢调用RT | 1000 | 超过1000 ms则判定为慢请求。 |
降级阈值 | 80% | 触发熔断的慢调用比例阈值为80%。 |
熔断时长 | 10 | 熔断时长有10秒。 |
最小请求数目 | 10 | 触发熔断的最小请求数目为10。 |
熔断恢复策略 | 单次探测恢复 | 经过熔断时长后,熔断器会对接下来的一个请求进行探测,若该请求符合预期(不为慢调用或没有异常),则结束熔断;否则重新回到熔断阶段。 |
规则开启后,在统计时长1秒内,当请求数目大于10,并且慢调用的比例大于80%的时候,则在接下来10秒的熔断时长内,请求都会快速失败。经过10秒后熔断器会进入探测恢复状态,若接下来的一个请求响应时间小于设置的1000 ms则结束熔断,若大于1000 ms则会再次被熔断。
常用场景2:异常熔断示例
例如第三方内容展示时,系统会出现异常,当异常比例较高时,可以对其进行熔断操作,以保证更好的用户体验。
在新增熔断规则或新增规则对话框中配置以下示例规则信息。
参数 | 示例值 | 描述 |
接口名称 | test | 接口名称。 |
统计窗口时长 | 1 | 统计时长为1秒。 |
阈值类型 | 异常比例 | 选择以异常比例作为阈值。 |
降级阈值 | 80% | 触发熔断的异常比例阈值为80%。 |
熔断时长 | 10 | 熔断时长有10秒。 |
最小请求数目 | 10 | 触发熔断的最小请求数目为10。 |
熔断恢复策略 | 单次探测恢复 | 经过熔断时长后,熔断器会对接下来的一个请求进行探测,若该请求符合预期(不为慢调用或没有异常),则结束熔断;否则重新回到熔断阶段。 |
规则开启后,在统计时长1秒内,当请求数目大于10,并且异常的比例大于80%的时候,则在接下来10秒的熔断时长内,请求都会快速失败。经过10秒后熔断器会进入探测恢复状态,若接下来的一个请求没有异常则结束熔断,否则会再次熔断。
更多信息
新增熔断规则或新增规则对话框的参数说明如下。
参数 | 描述 |
接口名称 | 适用该规则的应用资源。 |
统计窗口时长 | 统计的时间窗口长度,取值范围为1秒~120分钟。 |
最小请求数目 | 触发熔断的最小请求数目,若当前统计窗口内的请求数小于此值,即使达到熔断条件规则也不会触发。 |
阈值类型 | 选择以慢调用比例或异常比例作为阈值。
|
熔断时长 | 即熔断触发后持续的时间。资源进入熔断状态后,在配置的熔断时长内,请求都会快速失败。 |
熔断恢复策略 | 熔断器进入恢复阶段(半开启状态)的恢复策略。
|