文档首页/ API网关 APIG/ 用户指南/ API策略/ 流量控制策略说明
更新时间:2024-10-17 GMT+08:00

流量控制策略说明

流量控制支持从用户、凭据和时间段等不同的维度限制对API的调用次数,保护后端服务。支持按分/按秒粒度级别的流量控制。为了提供持续稳定的服务,您可以通过创建流控策略,针对部分API进行流量控制。

使用限制

  • 已了解前提条件
  • API添加流控策略相当于流控策略同步绑定了API。同一个环境中,一个API只能被一个流控策略绑定,但一个流控策略可以绑定多个API。
  • 如果API未绑定流控策略,流控限制值为实例“配置参数”中“ratelimit_api_limits”的参数运行值。

配置参数说明

表1 配置参数说明

参数

说明

策略名称

API流控策略名称。

类型

分“基础流控”和“共享流控”两类。

  • 基础流控针对单个API进行流量统计和控制;
  • 共享流控针对绑定了该策略的所有API进行总流量统计和控制。

时长

流量限制的时长。

  • 与“API流量限制”配合使用,表示单位时间内的单个API请求次数上限。
  • 与“用户流量限制”配合使用,表示单位时间内的单个用户请求次数上限。
  • 与“凭据流量限制”配合使用,表示单位时间内的单个凭据请求次数上限。
  • 与“源IP流量限制”配合使用,表示单位时间内的单个IP地址请求次数上限。

API流量限制

单个API被调用次数上限。

与“时长”配合使用,表示单位时间内的单个API请求次数上限。

用户流量限制

单个用户调用API次数上限,仅在API的安全认证方式为APP认证或IAM认证时适用

  • 不超过“API流量限制”。
  • 与“时长”配合使用,表示单位时间内的单个用户请求次数上限。
  • 如果主账号下有多个子用户访问API,按主账号累计的调用次数进行限制。

凭据流量限制

单个凭据调用API次数上限,仅在API的安全认证方式为APP认证时适用

  • 不超过“用户流量限制”和“API流量限制”。
  • 与“时长”配合使用,表示单位时间内的凭据请求次数上限。

源IP流量限制

单个IP地址(客户端IP地址)调用API次数上限。您可以选择配置实例的“real_ip_from_xff”参数使用X-Forwarded-For头中的IP作为流控的判断依据。

  • 不超过“API流量限制”。
  • 与“时长”配合使用,表示单位时间内的IP地址请求次数上限。

描述

关于控制策略的描述。

后续操作

  • 如果需要对某个凭据进行流量控制,可以在“流量控制策略”中为凭据绑定流量控制策略。绑定后,该凭据的流量受特殊凭据的阈值限制,而API流量和用户流量仍受流量控制策略限制。
  • 如果需要对某个租户进行流量控制,可以在“流量控制策略”中为租户绑定流量控制策略。绑定后,该租户的流量受特殊租户的阈值限制,而API流量和用户流量仍受流量控制策略限制。

为凭据绑定流量控制策略

已创建凭据,或已获取其他凭据ID。

  1. 在流控策略详情页面,单击“特殊凭据”页签,进入特殊凭据页面。
  2. 单击“添加特殊凭据”,弹出“添加特殊凭据”对话框。
  3. 通过以下两种方式,添加特殊凭据。

    • 添加已有凭据:单击“已有凭据”,选择已有凭据,输入阈值。
    • 添加其他凭据:单击“其他”,输入其他用户的凭据ID和阈值。

    特殊凭据流控值和凭据流量限制值共同作用时,以特殊凭据流控值为准。

    例如:API流量限制值为10,凭据流量限制值为3,时长为1分钟,特殊凭据(凭据A)流控值为2,特殊凭据(凭据B)流控值为4,凭据A在1分钟内最多可以访问绑定了该流控策略的API 2次,凭据B在1分钟内最多可以访问绑定了该流控策略的API 4次。

为租户绑定流量控制策略

  1. 在流控策略详情页面,单击“特殊租户”,进入特殊租户页面。
  1. 单击“添加特殊租户”,弹出“添加特殊租户”对话框。
  2. 输入租户信息。

    表2 特殊租户信息

    参数

    说明

    租户ID

    获取的账号ID或项目ID,请参考表1中的“特殊租户”说明。

    阈值

    固定时间段内,此租户访问API的最大值。

    不能超过API流量限制值。

  3. 单击“确定”,完成特殊租户的添加。

    特殊租户流控值和用户流量限制值共同作用时,以特殊租户流控值为准。

    例如:API流量限制值为10,用户流量限制值为3,时长为1分钟,特殊租户(租户ID为A)流控值为2,特殊租户(租户ID为B)流控值为4,租户A在1分钟内最多可以访问绑定了该流控策略的API 2次,租户B在1分钟内最多可以访问绑定了该流控策略的API 4次。