设置全局插件rate-limiting ,每分钟请求次数是5次 数据存储在本地内存中

  1. curl -i -X POST http://localhost:8001/plugins \
  2. --data "name=rate-limiting" \
  3. --data "config.minute=5" \
  4. --data "config.policy=local"
  5. HTTP/1.1 201 Created
  6. Date: Fri, 31 Jul 2020 08:23:16 GMT
  7. Content-Type: application/json; charset=utf-8
  8. Connection: keep-alive
  9. Access-Control-Allow-Origin: *
  10. Server: kong/2.1.0
  11. Content-Length: 497
  12. X-Kong-Admin-Latency: 10
  13. {"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次

  1. curl -i -X GET http://localhost:8000/mock/request
  2. HTTP/1.1 429 Too Many Requests
  3. Date: Fri, 31 Jul 2020 08:24:37 GMT
  4. Content-Type: application/json; charset=utf-8
  5. Connection: keep-alive
  6. Retry-After: 23
  7. Content-Length: 41
  8. X-RateLimit-Remaining-Minute: 0
  9. X-RateLimit-Limit-Minute: 5
  10. RateLimit-Remaining: 0
  11. RateLimit-Limit: 5
  12. RateLimit-Reset: 23
  13. X-Kong-Response-Latency: 1
  14. Server: kong/2.1.0
  15. {
  16. "message":"API rate limit exceeded"
  17. }

参考

https://github.com/Kong/kong/tree/master/kong/plugins/rate-limiting