首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在krakenD中应用后端配置的速率限制

如何在krakenD中应用后端配置的速率限制
EN

Stack Overflow用户
提问于 2021-12-20 17:53:38
回答 1查看 221关注 0票数 0

我对端点进行了krakend配置,如下所示

代码语言:javascript
运行
复制
        {
            "endpoint": "/api/login",
            "method": "POST",
            "output_encoding": "no-op",
            "headers_to_pass": [
              "*"
            ],
            "backend": [
                {
                    "encoding": "no-op",
                    "host": [ "http://login-service:80" ],
                    "url_pattern": "/api/login",
                    "method": "POST",
            "extra_config": {
      "github.com/devopsfaith/krakend-ratelimit/juju/router": {
          "maxRate": 2,
          "capacity": 2,
          "clientMaxRate": 1,
          "strategy": "header",
          "key": "x-real-ip"
      }
      }
                }
            ]
        }

我按照这些链接形成了配置https://www.krakend.io/docs/backends/rate-limit/ https://www.krakend.io/docs/endpoints/rate-limit/

但问题是,我认为配置不起作用。对于上述配置,每秒允许的最大请求为2,但端点每秒接受2次以上的请求,而不显示任何错误消息。根据文档,如果对触发限制的人达到了maxRate限制,则应显示503服务不可用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-21 08:25:39

看起来您的额外配置是错误的。路由器速率限制在端点内,而不是后端。用这个:

代码语言:javascript
运行
复制
{
    "endpoint": "/api/login",
    "method": "POST",
    "output_encoding": "no-op",
    "headers_to_pass": [
        "*"
    ],
    "extra_config": {
        "github.com/devopsfaith/krakend-ratelimit/juju/router": {
            "maxRate": 2,
            "capacity": 2,
            "clientMaxRate": 1,
            "strategy": "header",
            "key": "x-real-ip"
        }
    },
    "backend": [
        {
            "encoding": "no-op",
            "host": [
                "http://login-service:80"
            ],
            "url_pattern": "/api/login",
            "method": "POST"
        }
    ]
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70426046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档