API流控规则

为网关应用配置网关流控规则后,AHAS将从流量入口处拦截激增的流量,防止下游服务被压垮。本文将介绍如何为已接入AHAS的网关应用配置网关流控规则。

新建网关流控规则

  1. 登录AHAS控制台,然后在页面左上角选择地域。
  2. 在控制台左侧导航栏中选择流量防护 > 网关防护
  3. 网关防护页面单击目标应用卡片。
  4. 单击目标网关应用卡片,然后任选一种方式进入API流控规则的配置页面:
    • 接口详情页面,单击API资源卡片右上角的加号图标。
    • 在左侧导航栏中单击API流控规则,然后在页面右上角单击新增流控规则
  5. 新增流控规则对话框中,配置流控规则。
    参数描述
    API选择适用该规则的自定义API,或者手动输入路由配置文件中的Route ID。
    针对请求属性
    • 关闭针对请求属性开关:不针对请求属性(如Client IP,URL参数等)进行限流,直接针对该API的所有请求进行流量控制。
    • 开启针对请求属性开关:针对该API的某个请求属性进行限流,可以选择参数属性。

      可以根据以下属性进行流量控制:

      • Client IP:请求端的IP地址。
      • Remote Host:请求端的Host Header。
      • Header:根据指定的HTTP Header进行解析,匹配对应的Header Key。选择Header后,可以配置请求属性值的匹配策略,只有匹配该模式的请求属性值会纳入统计和流控。
      • URL参数:根据指定的HTTP URL参数进行解析,需要填写对应的参数名称。选择URL参数后,可以配置请求属性值的匹配策略,只有匹配该模式的请求属性值会纳入统计和流控。
    • 匹配模式
      • 精确:严格按照给定的匹配串来匹配值。
      • 子串:若请求属性值包含该子串则匹配成功,如子串匹配ab,则abacabc都可以匹配,而cba则不能匹配。
      • 正则:按照给定的正则表达式匹配串来进行匹配。
    阈值类型
    • QPS:应用或服务流量的QPS指标。选择QPS后,还需设置QPS阈值和统计间隔(支持秒、分钟、小时、天4种维度)。

      例如,QPS阈值填写10,统计间隔选择,则代表每分钟对应的请求数目不超过10个。

    • 线程数:资源的并发线程数,即该资源正在执行的线程数。
      说明 开启针对请求属性开关后,暂时不支持线程数作为阈值类型。
    流控方式
    • 快速失败:当阈值类型QPS时,被拦截的流量将快速失败。即达到阈值时,立即拦截请求。
    • 匀速排队:当阈值类型QPS时,被拦截的请求将匀速通过,允许排队等待。

      需设置具体的超时时间,预计达到超时时间的请求会立即失败,而不会排队。

      例如,QPS配置为10,则代表请求每100 ms才能通过一个,多出的请求将排队等待通过。超时时间代表最大排队时间,超出最大排队时间的请求将会直接被拒绝。

      说明 匀速排队时,QPS不要超过1000(请求间隔1 ms)。
    Burst size当流控方式为快速失败时,可以额外设置一个Burst Size,即针对突发请求额外允许的请求数目。
    超时时间当流控方式为匀速排队时,需设置具体的超时时间,达到超时时间后请求会失败。例如,QPS配置为5,则代表请求每200 ms才能通过一个,多出的请求将排队等待通过。超时时间代表最大排队时间,超出最大排队时间的请求将会直接被拒绝。
  6. 单击新增

    新增的规则将出现在API流控规则页面。

管理流控规则

流控规则页面,您可以启用、禁用、编辑或删除流控规则。

  • 单流控规则启用或禁用:

    流控规则页面,找到目标资源下对应的流控规则,单击状态栏的启用开关,可快速启用或禁用该规则。

  • 多流控规则批量启用或禁用:

    流控规则页面,勾选多个流控规则,单击批量启用批量禁用,可快速启用或禁用多个规则。

  • 编辑规则:

    流控规则页面,找到目标资源下对应的流控规则,单击操作栏的编辑,可修改该规则的相关信息。

  • 删除规则:

    流控规则页面,找到目标资源下对应的流控规则,单击操作栏的删除