{
"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端处理。
苏巴姆。您可以在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);