更新时间:2023-05-09 GMT+08:00
方案概述
应用场景
当在公网中调用APIG上公开的业务API时,如果不限制API调用的次数,随着用户的不断增加,会引起后端性能的下降,甚至会因为恶意用户发送的大量请求导致网站或程序崩溃。APIG提供了传统策略——流量控制,从API、用户、凭据、源IP等多个维度进行流控。
然而,随着用户多样性以及需求多样性的增加,传统流控策略无法满足更加精细的流量控制场景。比如针对某一请求参数的流控或者某一租户的流控,APIG在传统流量控制策略的基础上提供了插件策略——流量控制2.0,通过制定更加精细的方案来进行流控。
以下将以流量控制2.0为例,进行实践说明,讲述如何通过创建流量控制2.0策略来应对不同场景的网关限流。
方案优势
- 流量控制2.0策略可以限制单位时间内API的被调用次数,支持基础流控、参数流控和基于基础流控的特殊流控。
- 基础流控:可以对API、用户、凭据、源IP进行多维度流控,与已有的流量控制策略说明功能一致,但配置方式不兼容。
- 参数流控:支持根据Header、Path、Method、Query以及系统变量中的参数值进行自定义流控。
- 基于基础流控的特殊流控:对某个租户或凭证进行特定的流控。
- 支持从用户、凭据和时间段等不同的维度限制对API的调用次数。
- 支持按天以及按时分秒粒度的流量控制。
约束与限制
- API添加流量控制2.0策略相当于流量控制2.0策略同步绑定了API。同一个环境中,一个API只能被一个流量控制2.0策略绑定,但一个流量控制2.0策略可以绑定多个API。(使用前提是绑定的API已发布。)
- 如果API未绑定流量控制2.0策略,流控限制值为实例“配置参数”中“ratelimit_api_limits”的参数运行值。
- 如果一个API绑定传统流量控制策略后,继续绑定流量控制2.0策略,传统流量控制策略会失效。
- 参数流控的规则最多可定义100个。
- 策略内容最大长度65535。
- 如果您的实例不支持流量控制2.0,请联系技术支持。
父主题: API网关流量控制2.0策略