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

前提条件

新建网关流控规则

  1. 登录 AHAS 控制台,并在顶部导航栏选择地域。
  2. 在左侧导航栏选择流控降级 > 网关流控
  3. 单击目标网关应用卡片,然后任选一种方式进入网关流控规则的配置页面:
    • 监控详情页面,单击 API 资源卡片右上角的加号图标。
    • 在左侧导航栏中单击流控规则。然后在流控规则页面右上角单击新增流控规则
  4. 新增流控规则对话框中,配置流控规则。新增网关流控规则
    • API:选择适用该规则的自定义 API,或者手动输入路由配置文件中的 Route ID。
    • 针对请求属性
      • 闭合针对请求属性开关:不针对请求属性(如 Client IP,URL 参数等)进行限流,直接针对该 API 的所有请求进行流量控制。
      • 开启针对请求属性开关:针对该 API 的某个请求属性进行限流。例如,可以针对每个 URL 参数的访问进行限制。
    • 阈值类型
      • QPS:应用或服务流量的 QPS 指标。选择 QPS 后,还需设置 QPS 阈值和统计间隔(支持秒、分钟、小时、天 4 种维度)。

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

      • 线程数:资源的并发线程数,即该资源正在执行的线程数。
        说明 开启针对请求属性开关后,暂时不支持线程数作为阈值类型。
    • 参数属性
      • Client IP:请求端的 IP 地址。
      • Remote Host:请求端的 Host Header。
      • Header:根据指定的 HTTP Header 进行解析,匹配对应的 Header Key。选择 Header 后,可以配置请求属性值的匹配策略,只有匹配该模式的请求属性值会纳入统计和流控。
      • URL 参数:根据指定的 HTTP URL 参数进行解析,需要填写对应的参数名称。选择 URL 参数后,可以配置请求属性值的匹配策略,只有匹配该模式的请求属性值会纳入统计和流控。
    • 匹配模式
      • 精确:严格按照给定的匹配串来匹配值。
      • 子串:若请求属性值包含该子串则匹配成功,如子串匹配 ab,则 abacabc 都可以匹配,而 cba 则不能匹配。
      • 正则:按照给定的正则表达式匹配串来进行匹配。
    • 流控方式
      • 快速失败:当阈值类型QPS 时,被拦截的流量将快速失败。即达到阈值时,立即拦截请求。
      • 匀速排队:当阈值类型QPS 时,被拦截的请求将匀速通过,允许排队等待。

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

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

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

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

管理流控规则

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

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

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

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

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

  • 编辑规则:

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

  • 删除规则:

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