You need to enable JavaScript to run this app.
文档中心
API 网关

API 网关

复制全文
下载 pdf
流量管控
访问限流
复制全文
下载 pdf
访问限流
限流插件支持控制网关实例级别、路由级别的访问请求阈值,保障后端服务的稳定性。本文为您介绍如何配置限流功能。​
背景信息​
功能简介​
访问限流是 API 网关提供的一种流量管控能力。通过限流插件,您可以为网关实例或路由设置单位时间内允许通过的最大请求数量。当实际请求量超过设定的阈值时,超出部分的请求将被网关拒绝。访问限流的请求处理流程如下。​
  1. 客户端向 API 网关发送请求。​
  1. 网关接收请求后,判断当前请求命中的路由是否配置了限流策略。​
  1. 若命中路由级别限流策略,则对该路由进行计数,判断是否超过阈值。​
  1. 若未命中任何路由级别限流策略,则检查请求所属实例是否配置了实例级别限流策略,并对该实例进行计数。​
  1. 网关在当前统计周期内对请求计数:​
  • 若请求量未超过限流阈值,请求正常转发至后端服务。​
  • 若请求量已超过限流阈值,网关直接拒绝访问并提示 rate_limited,不再将请求转发至后端。​
限流维度​
  • 路由级别限流:在一个统计周期内,统计指定路由中所有的请求方法、匹配路径和域名的请求量总和。​
  • 实例级别限流:在一个统计周期内,统计指定实例中所有路由的请求量总和。​
网关对实例级别限流策略和路由级别限流策略进行分别计数,路由级别限流策略生效优先级高于网关级别。例如:假设 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 网关控制台。​
  1. 在顶部导航栏,选择目标地域。​
  1. 在左侧导航栏 实例管理 下拉框中选择目标实例后,单击 插件中心 > 流量管控 > 限流插件。​
  1. 单击 创建插件,配置限流插件的参数。​
  • ​alt​​
  • ​
    配置项​
    说明​
    生效级别​
    选择限流插件的生效级别,包括:​
    • 实例级别:限流阈值在实例内生效,需要指定生效的目标实例。​
    • 路由级别:限流阈值在服务内生效,需要指定生效的目标实例、目标服务和目标路由。​
    备注​
    输入关于当前限流插件的备注信息,可以为空。​
    限流阈值​
    配置当前实例或路由在 1 个间隔周期内允许被访问的次数。超过目标次数后,访问请求将被拒绝,系统会返回错误码 429 Too Many Requests,并提示 rate_limited。​
    间隔周期​
    定义限流统计的时间长度,即系统在多长时间范围内统计的访问次数,包括:1s(1 秒)、1m(1 分钟)、1h(1 小时)和 1d(1 天)。​
    ​
  1. 单击 确定,完成配置。​
结果验证​
查看配置​
配置完成后,在 限流插件 列表将生成一条新的限流插件记录。插件状态为 已启用,表示插件功能生效。​
​alt​​
流量测试​
  1. 使用 API 网关实例中配置的域名访问服务,当访问请求未超过限流阈值时。​
  • ​
    curl -H "Host: apig-example.com" http://14.xxx.xxx.xxx​
    ​
  • 预期结果如下,表示能够通过 API 网关访问到后端的服务。​
  • ​
    <!DOCTYPE html>​
    <html>​
    <head>​
    <title>Welcome to nginx!</title>​
    <style>​
    html { color-scheme: light dark; }​
    body { ​
    width: 35em; ​
    margin: 0 auto;​
    font-family: Tahoma, Verdana, Arial, sans-serif; ​
    }​
    </style>​
    </head>​
    <body>​
    <h1>Welcome to nginx!</h1>​
    <p>If you see this page, the nginx web server is successfully installed and​
    working. Further configuration is required.</p>​
    ​
    <p>For online documentation and support please refer to​
    <a href="http://nginx.org/">nginx.org</a>.<br/>​
    Commercial support is available at​
    <a href="http://nginx.com/">nginx.com</a>.</p>​
    ​
    <p><em>Thank you for using nginx.</em></p>​
    </body>​
    </html>​
    ​
  1. 使用 API 网关实例中配置的域名访问服务,当访问请求超过限流阈值时。​
  • ​
    curl -H "Host: apig-example.com" http://14.xxx.xxx.xxx​
    ​
  • 预期结果如下,在目标配额内的请求可访问成功,超出目标配额的请求将被拒绝,并提示rate_limited。​
  • ​
    rate_limited​
    ​
最近更新时间:2026.08.10 17:59:43
这个页面对您有帮助吗?
有用
有用
无用
无用