【API网关Kong系列十】- Rate Limiting

 阅读约 8 分钟

1、前言

在前面我们介绍了Kong的一些内容,包括Key-auth、basic 等插件, 想了解的请移步《企业级API网关Kong系列》
本章我们继续其插件之旅,Limit 限流插件的使用。

2、Rate Limiting

限流的插件使用起来非常简单,它可以分别在Service 、 Route、Consumer上开启,下面我们一一来介绍下。

2.1 Service 上开启

$ curl -X POST http://kong:8001/services/{service}/plugins \
    --data "name=rate-limiting"
    --data "config.second=5" \
    --data "config.hour=10000" 

2.2 Route 上开启

$ curl -X POST http://kong:8001/routes/{route}/plugins \
    --data "name=rate-limiting"
    --data "config.second=5" \
    --data "config.hour=10000" 

2.3 Consumer 上开启

$ curl -X POST http://kong:8001/consumers/{consumer}/plugins \
    --data "name=rate-limiting-advanced" \
    --data "config.second=5" \
    --data "config.hour=10000"

3 参数列表

<td标头名称,在header定义标识符时用作速率限制键。>
参数 描述
name 在这种情况下,要使用的插件的名称 rate-limiting-advanced
service_id 此插件将定位的服务的ID。
route_id 此插件将定位的路由的ID。
enabled 默认值: true 是否将应用此插件。
consumer_id 此插件将定位的Consumer的id。
config.limit 每个窗口应用一个以上的请求
config.window_size 再应用一个窗口大小(以秒为单位定义)
config.identifier 默认值: consumer 如何定义速率限制键。可以ip,credential,consumer,service,或header。
config.header_name 可选
config.dictionary_name 默认值: kong_rate_limiting_counters 共享字典,其中计数器将存储到下一个同步周期
config.sync_rate 将计数器数据同步到中央数据存储的频率。值为0会导致同步行为; 值-1完全忽略同步行为,仅在节点内存中存储计数器。大于0的值将在很多秒内同步计数器。
config.namespace 可选的 默认值: 随机字符串 用于此插件实例的速率限制库名称空间。计数器数据和同步配置在命名空间中共享。
config.strategy 默认值: cluster 要使用的同步策略; cluster并redis得到支持
config.redis.host 可选 redis定义策略时用于Redis连接的主机
config.redis.port 可选 redis定义策略时用于Redis连接的端口
config.redis.timeout 可选的 默认值: 2000 redis定义策略时用于Redis连接的连接超时(以毫秒为单位)
config.redis.password 可选 redis定义策略时用于Redis连接的密码。如果未定义,则不会向Redis发送AUTH命令。
config.redis.database 可选的 默认值: 0 redis定义策略时用于Redis连接的数据库
config.redis.sentinel_master 可选 redis定义策略时,Sentinel master用于Redis连接。定义此值意味着使用Redis Sentinel。
config.redis.sentinel_role 可选 redis定义策略时用于Redis连接的Sentinel角色。定义此值意味着使用Redis Sentinel。
config.redis.sentinel_addresses可选 redis定义策略时,Sentinel地址用于Redis连接。定义此值意味着使用Redis Sentinel。
config.redis.cluster_addresses 可选 redis定义策略时用于Redis连接的群集地址。定义此值意味着使 用Redis群集。
config.window_type 默认值: sliding 这将时间窗口设置为sliding或fixed

注意 : 如果使用cluster策略、则忽略Redis配置。
将Cluster和postgres做kong 集群数据存储时, 需要 PostgresSQL9.5+。

想了解更多关于Kong网关的请移步 >>>>> 企业级API网关Kong
阅读 560发布于 8月10日
推荐阅读
非学无以广才
用户专栏

喷泉之所以漂亮是因为她有了压力;瀑布之所以壮观是因为她没有了退路;水之所以能穿石是因为永远在坚持。

10 人关注
35 篇文章
专栏主页
目录