SAE可以通过AHAS监控应用内部或者下游依赖的响应时间或异常比例,当达到指定的阈值时立即降低下游依赖的优先级。在指定的时间内,系统不调用该不稳定的资源,避免应用受到影响,从而保障应用高可用性。当指定时间过后,再重新恢复对该资源的调用。本文介绍配置降级规则的操作步骤。

前提条件

请确保您的Java应用已开启限流降级功能。具体步骤,请参见设置限流降级

背景信息

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

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

操作步骤

  1. 登录SAE控制台
  2. 在左侧导航栏单击应用列表,在应用列表页面上方选择地域,单击具体应用名称。
  3. 在左侧导航栏中选择限流降级(仅支持Java) > 规则管理
  4. 规则管理页面,单击降级规则,在降级规则页签,单击新增降级规则
  5. 新增降级规则对话框,设置参数,单击新建
    新增降级规则

    参数说明如下:

    参数 描述
    接口名称 适用该规则的应用资源。
    统计窗口时长 统计的时间窗口长度,取值范围为1秒~120分钟。
    最小请求数目 触发熔断的最小请求数目,若当前统计窗口内的请求数小于此值,即使达到熔断条件规则也不会触发。
    阈值类型 选择以慢调用比例异常比例作为阈值。
    • 选择以慢调用比例作为阈值,需要设置允许的慢调用RT(即最大的响应时间),请求的响应时间大于该值则统计为慢调用。

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

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

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

    熔断时长 即熔断触发后持续的时间。资源进入熔断状态后,在配置的熔断时长内,请求都会快速失败。
    熔断恢复策略 熔断器进入恢复阶段(半开启状态)的恢复策略。
    • 单次探测恢复:经过熔断时长后,熔断器会对接下来的一个请求进行探测,若该请求符合预期(不为慢调用或没有异常),则结束熔断;否则重新回到熔断阶段。
    • 渐进式恢复:需要设置恢复阶段数每步最小通过数目
      • 经过熔断时长后,熔断器按照设定的恢复阶段数进行渐进式恢复,若该阶段内请求达到一定量即每步最小通过数目,则触发检查。检查的请求若都未超过阈值,则逐步提高允许通过的请求比例,直到请求完全恢复;若某一步的指标超出阈值,则重新回到熔断阶段。
      • 请求比例T=100/恢复阶段数N,则第一阶段请求比例为T,第二阶段为2T……直到100%。
      • 例如恢复阶段数为3,每步最小通过数目为5,则三个阶段分别按照33%、67%和100%的比例放入请求,当每阶段的请求数目大于等于5时进行检查,若请求的指标未超阈值则进入下一恢复阶段,直至完全恢复。
      说明 渐进式恢复策略功能需要Java SDK版本≥1.6.2。