配置API的流量控制
流量控制支持从用户、凭据和时间段等不同的维度限制对API的调用次数,保护后端服务。支持按分/按秒粒度级别的流量控制。为了提供持续稳定的服务,您可以通过创建流控策略,针对部分API进行流量控制。
使用限制
- API添加流控策略相当于流控策略同步绑定了API。同一个环境中,一个API只能被一个流控策略绑定,但一个流控策略可以绑定多个API。
- 如果API未绑定流控策略,流控限制值为实例“配置参数”中“ratelimit_api_limits”的参数运行值。
- 一个API只能绑定一个相同类型的策略。
- 策略和API本身相互独立,只有为API绑定策略后,策略才对API生效。为API绑定策略时需指定发布环境,策略只对指定环境上的API生效。
- 策略的绑定、解绑、更新会实时生效,不需要重新发布API。
- API的下线操作不影响策略的绑定关系,再次发布后仍然会带有下线前绑定的策略。
- 如果策略与API有绑定关系,则策略无法执行删除操作。
创建流量控制策略
- 进入API网关控制台页面。
- 根据实际业务在左侧导航栏上方选择实例。
- 在左侧导航栏选择“API管理 > API策略”。
- 在“策略管理”页面,单击“创建策略”。
- 在“选择策略类型”弹窗中,选择“传统策略 > 流量控制”。
- 在“创建策略”弹窗中,配置策略信息。
表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流量和用户流量仍受流量控制策略限制。
策略创建后,您还需要为策略绑定API,才能使策略对API生效。
为凭据绑定流量控制策略
已创建凭据,或已获取其他凭据ID。
- 在流控策略详情页面,单击“特殊凭据”页签,进入特殊凭据页面。
- 单击“添加特殊凭据”,弹出“添加特殊凭据”对话框。
- 通过以下两种方式,添加特殊凭据。
- 添加已有凭据:单击“已有凭据”,选择已有凭据,输入阈值。
- 添加其他凭据:单击“其他”,输入其他用户的凭据ID和阈值。
特殊凭据流控值和凭据流量限制值共同作用时,以特殊凭据流控值为准。
例如:API流量限制值为10,凭据流量限制值为3,时长为1分钟,特殊凭据(凭据A)流控值为2,特殊凭据(凭据B)流控值为4,凭据A在1分钟内最多可以访问绑定了该流控策略的API 2次,凭据B在1分钟内最多可以访问绑定了该流控策略的API 4次。
为租户绑定流量控制策略
- 在流控策略详情页面,单击“特殊租户”,进入特殊租户页面。
- 单击“添加特殊租户”,弹出“添加特殊租户”对话框。
- 输入租户信息。
表2 特殊租户信息 参数
说明
租户ID
获取的账号ID或项目ID,请参考表1中的“特殊租户”说明。
阈值
固定时间段内,此租户访问API的最大值。
不能超过API流量限制值。
- 单击“确定”,完成特殊租户的添加。
特殊租户流控值和用户流量限制值共同作用时,以特殊租户流控值为准。
例如:API流量限制值为10,用户流量限制值为3,时长为1分钟,特殊租户(租户ID为A)流控值为2,特殊租户(租户ID为B)流控值为4,租户A在1分钟内最多可以访问绑定了该流控策略的API 2次,租户B在1分钟内最多可以访问绑定了该流控策略的API 4次。