我正在使用 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 层接受的请求比预期的要多。
提前致谢!