通过配置限流插件,可控制网关实例级别/路由级别的访问请求阈值,保障后端服务的稳定性。本文为您介绍如何创建限流插件。
路由级别限流配置 = 在一个统计周期内,当前路由上所有请求方法、所有匹配路径、所有域名下的请求量总和。
实例级别限流配额 = 在一个统计周期内,所有路由请求量总和。
网关对实例级别限流策略和路由级别限流策略进行分别计数。其中,路由级别限流策略生效优先级高于网关级别。
例如:假设 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 路由。
每个网关实例仅允许配置一个限流插件。
每条路由仅允许配置一个限流插件。
实例级别限流插件和路由级别限流插件均支持双入口配置,具体如下。下文以 插件管理 > 限流插件 入口为例进行介绍。
对于实例级别限流插件,可通过 实例管理 进入目标实例的 插件列表 页签中开启并配置限流插件,也可通过 插件管理 > 限流插件 入口进行配置。
对于路由级别限流插件,可通过 路由管理 > 服务列表(域名) 进入目标路由的 插件列表 页签中开启并配置限流插件,也可通过 插件管理 > 限流插件 入口进行配置。
登录 API 网关控制台。
在左侧导航栏选择 插件管理 > 限流插件。
在限流插件页面,单击 创建插件。
在 创建限流插件 页面,填写参数信息,然后单击 确定。
配置项说明:
配置项 | 说明 |
---|---|
生效级别 | 选择限流插件的生效级别,当前支持 实例级别 和 路由级别。
|
备注 | 输入关于当前限流插件的备注信息,可以为空。 |
限流阈值 | 定义当前实例/路由在1个间隔周期内允许被访问的次数。超过目标次数后,访问请求将被拒绝,系统会返回错误码 429 Too Many Requests ,并提示 rate_limited 。 |
间隔周期 | 定义间隔周期的时长,当前支持 1 s、1 min、1 h、1d。 |
限流插件列表将生成一条新的限流插件记录。单击 所属实例/路由,可跳转至目标实例/路由的概览页面,切换至插件列表页签,可看到限流插件已开启。
在一个限流周期内,向开启限流插件的网关实例/路由发送请求。预期在目标配额内的请求可访问成功,超出目标配额的请求将被拒绝,并提示rate_limited
。