Krakend-2.4.0:端点中的速率限制不起作用

问题描述 投票:0回答:1
{
"version": 3,
"name": "My lovely gateway",
"port": 8084,
"cache_ttl": "3600s",
"timeout": "3s",
"extra_config": {
  
},
"endpoints": [
{
  "endpoint": "/rate",
  "method": "GET",
  "output_encoding": "json",
  "extra_config": {
    "qos/ratelimit/router": {
      "max_rate": 4,
      "every": "5m",
      "capacity": 4
      }
  },
  "backend": [
    {
      "url_pattern": "/rate",
      "method": "GET",
     "host": [
          "http://127.0.0.1:8091/"
      ]
    }
  ],
  "input_query_strings":[
     "*"
  ],
  
  "input_headers": [
    "*"
  ]
}
 ]
 }

这是我的 krakend.json 文件。我想在 krakend 服务中添加速率限制。我从 此链接获取参考。但是当我尝试从邮递员访问服务器时,它没有返回 503 不可用消息。我也尝试从浏览器访问。如何在 krakend 中添加基本速率限制? 注意:后端服务器是一个基本的express.js服务器。我是否应该在该服务器中添加速率限制,或者它仅由krakend端处理。

rate-limiting krakend
1个回答
0
投票

苏巴姆。您可以在express.js 服务器本身中处理速率限制。为此,您可以使用包:express-rate-limit,可通过 https://www.npmjs.com/package/express-rate-limit 访问。

这是一个可能对您有帮助的小代码片段:

// Create a rate limiter middleware
const limiter = rateLimit({
   windowMs: 5 * 60 * 1000, // 5 minutes
   max: 4, // Max requests per windowMs
   message: 'Too many requests from this IP, please try again later.',
});
    
// Apply the rate limiter to all requests
app.use(limiter);
© www.soinside.com 2019 - 2024. All rights reserved.