更新时间:2024-11-27 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,请联系技术支持。

相关文档