设置全局插件rate-limiting ,每分钟请求次数是5次 数据存储在本地内存中
curl -i -X POST http://localhost:8001/plugins \
--data "name=rate-limiting" \
--data "config.minute=5" \
--data "config.policy=local"
HTTP/1.1 201 Created
Date: Fri, 31 Jul 2020 08:23:16 GMT
Content-Type: application/json; charset=utf-8
Connection: keep-alive
Access-Control-Allow-Origin: *
Server: kong/2.1.0
Content-Length: 497
X-Kong-Admin-Latency: 10
{"created_at":1596183796,"id":"5beb7c20-b8a3-4fb1-a0b1-2a6b5ed9af20","tags":null,"enabled":true,"protocols":["grpc","grpcs","http","https"],"name":"rate-limiting","consumer":null,"service":null,"route":null,"config":{"hide_client_headers":false,"minute":5,"policy":"local","month":null,"redis_timeout":2000,"limit_by":"consumer","redis_password":null,"second":null,"day":null,"redis_database":0,"year":null,"hour":null,"redis_host":null,"redis_port":6379,"header_name":null,"fault_tolerant":true}}
连续请求6次
curl -i -X GET http://localhost:8000/mock/request
HTTP/1.1 429 Too Many Requests
Date: Fri, 31 Jul 2020 08:24:37 GMT
Content-Type: application/json; charset=utf-8
Connection: keep-alive
Retry-After: 23
Content-Length: 41
X-RateLimit-Remaining-Minute: 0
X-RateLimit-Limit-Minute: 5
RateLimit-Remaining: 0
RateLimit-Limit: 5
RateLimit-Reset: 23
X-Kong-Response-Latency: 1
Server: kong/2.1.0
{
"message":"API rate limit exceeded"
}
参考
https://github.com/Kong/kong/tree/master/kong/plugins/rate-limiting