流量控制插件
开启流量控制插件
打开“应用服务管理-企业门户-更多-网关”,打开插件配置页面,如下图所示
在“企业门户V2”中配置 kong 的插件,在“所有应用服务”中配置 kong2 的插件。
选择“所有应用服务”后,选择流量控制 rate-limiting 插件,开启插件并设置插件参数
插件参数说明
此插件是系统插件,可以参考 kong 官网插件说明:https://docs.konghq.com/hub/kong-inc/rate-limiting/
参数 | 描述 |
---|---|
redis 端口 | 设置 redis 端口 |
redis_ssl | |
redis_username | |
redis 密码 | |
redis 数据库 | |
redis 主机 | |
redis_ssl_verify | |
redis 超时 | |
redis_server_name | |
是否隐藏客户端头部信息 | |
是否容忍内部错误 | |
header_name | |
年 | |
月 | |
month | |
天 | |
小时 | |
分钟 | |
秒 | |
限制依据 | consumer: credential: ip: |
path | |
限制策略 | local: 在对精度要求不高的场景下,官方推荐这种方式,在性能和维护上都很不错。如果是在 DB-less 的场景只能选择 redis 和 local 了。cluster:这是默认的方式,也是在要求频率控制精确的场景下,比较提倡的方式。这种方式把频率都记录在数据库中,每次请求过来都要查一下数据库,因此极大的影响了效率。 redis: 这种需要引入 redis,把频率记录在 redis 里面,每次请求过来都要查询一下 redis,性能肯定比 cluster 快,但是因为引入 redis,要考虑维护 redis 的成本 |
可以不用配置 redis,不过要设置限制方法,设置了每秒不超过2次,当请求超过2次,会出现
{
"message": "API rate limit exceeded"
}
说明:根据年、月、日、时、分、秒设置限流规则,多个限制同时生效。比如:
- 每天不能超过10次调用,每分钟不能超过3次。
- 当一分钟内,访问超过3次,第四次就会报错。
- 当一天内,访问次数超过10次,第十一次就会报错