You need to enable JavaScript to run this app.
导航
创建限流插件
最近更新时间:2024.05.14 10:33:13首次发布时间:2024.05.14 10:33:13

通过配置限流插件,可控制网关实例级别/路由级别的访问请求阈值,保障后端服务的稳定性。本文为您介绍如何创建限流插件。

背景信息

  • 路由级别限流配置 = 在一个统计周期内,当前路由上所有请求方法、所有匹配路径、所有域名下的请求量总和。

  • 实例级别限流配额 = 在一个统计周期内,所有路由请求量总和。

  • 网关对实例级别限流策略和路由级别限流策略进行分别计数。其中,路由级别限流策略生效优先级高于网关级别。

    例如:假设 A 网关实例下有 a、b、c、d 共 4 条路由。实例 A、路由 a/b/c 均配置了限流策略,路由 d 未配置限流策略。在一个统计周期内,

    • 若请求命中 A 实例下的 a/b/c 路由,将对 a/b/c 路由分别进行计数,不对实例 A 计数。

    • 若请求命中 A 实例下未设置限流策略的 d 路由,则仅对实例 A 进行计数。

前提条件

使用限制

  • 开启限流插件后,将在每个网关副本上单独生效,不同副本间的限流计数相互隔离。

    例如:当您的网关实例为 2 副本时,配置 100 次/分钟的实例级别限流后,每个副本的限流为 100 次/分钟,实际网关的理论最大流量为 200 次/分钟。

  • 限流策略生效优先级:路由级别 > 实例级别。

  • 路由级别限流仅支持 HTTP(S) 路由,不支持 TCP 路由。

  • 每个网关实例仅允许配置一个限流插件。

  • 每条路由仅允许配置一个限流插件。

操作步骤

实例级别限流插件和路由级别限流插件均支持双入口配置,具体如下。下文以 插件管理 > 限流插件 入口为例进行介绍。

  • 对于实例级别限流插件,可通过 实例管理 进入目标实例的 插件列表 页签中开启并配置限流插件,也可通过 插件管理 > 限流插件 入口进行配置。

  • 对于路由级别限流插件,可通过 路由管理 > 服务列表(域名) 进入目标路由的 插件列表 页签中开启并配置限流插件,也可通过 插件管理 > 限流插件 入口进行配置。

  1. 登录 API 网关控制台

  2. 在左侧导航栏选择 插件管理 > 限流插件

  3. 在限流插件页面,单击 创建插件

  4. 创建限流插件 页面,填写参数信息,然后单击 确定


      配置项说明:

    配置项说明

    生效级别

    选择限流插件的生效级别,当前支持 实例级别路由级别

    • 实例级别 需进一步选择目标实例。

    • 路由级别 需进一步选择目标路由。

    备注输入关于当前限流插件的备注信息,可以为空。
    限流阈值定义当前实例/路由在1个间隔周期内允许被访问的次数。超过目标次数后,访问请求将被拒绝,系统会返回错误码 429 Too Many Requests,并提示 rate_limited
    间隔周期定义间隔周期的时长,当前支持 1 s、1 min、1 h、1d。

操作结果

  1. 限流插件列表将生成一条新的限流插件记录。单击 所属实例/路由,可跳转至目标实例/路由的概览页面,切换至插件列表页签,可看到限流插件已开启。


  2. 在一个限流周期内,向开启限流插件的网关实例/路由发送请求。预期在目标配额内的请求可访问成功,超出目标配额的请求将被拒绝,并提示rate_limited