设置全局插件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 CreatedDate: Fri, 31 Jul 2020 08:23:16 GMTContent-Type: application/json; charset=utf-8Connection: keep-aliveAccess-Control-Allow-Origin: *Server: kong/2.1.0Content-Length: 497X-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/requestHTTP/1.1 429 Too Many RequestsDate: Fri, 31 Jul 2020 08:24:37 GMTContent-Type: application/json; charset=utf-8Connection: keep-aliveRetry-After: 23Content-Length: 41X-RateLimit-Remaining-Minute: 0X-RateLimit-Limit-Minute: 5RateLimit-Remaining: 0RateLimit-Limit: 5RateLimit-Reset: 23X-Kong-Response-Latency: 1Server: kong/2.1.0{"message":"API rate limit exceeded"}
参考
https://github.com/Kong/kong/tree/master/kong/plugins/rate-limiting
