首页 > 解决方案 > kubernetes NGINX - 限速公式

问题描述

我正在使用 Kubernetes + NGINX 来部署应用程序的 Web 和应用层。对于 Web 层,Kubernetes 有 1 个副本集和 2 个 Pod。我有基于 IP 地址和 ngx_throttling rate_limit 的速率限制配置为'100/sec'和突发限制为'30/sec'

使用 JMeter(来自单个 IP)部署服务后,提交 2000 API reqs/sec 以测试速率限制配置。

实际结果: Web 层对大约 1006 个请求返回成功响应,然后返回状态码 429(请求过多)

预期结果: 我希望 Web 层根据以下公式返回成功响应(参考此处)。成功响应 = (period * rate + burst) * number of PODs= (1sec * 100 + 30) * 2 = 130 * 2 = 260 reqs/sec

这是(period * rate + burst) * number of PODs用 ngx 计算 K8S 中速率限制的正确公式吗?我想了解为什么 web 层接受的请求比预期的要多。

提前致谢!

标签: spring-bootkubernetesrate-limitingratelimit

解决方案


推荐阅读