Ingress限流
2024-10-22 04:26:19
先说结论:
ingress节点数量=n0
ingress限流配置
nginx.ingress.kubernetes.io/limit-rps: "n1"
nginx.ingress.kubernetes.io/limit-burst-multiplier: "n2"
每分钟限流连接数为 (60*n1+n1*n2)*n0
ingress限流配置
nginx.ingress.kubernetes.io/limit-rps: "n1"
nginx.ingress.kubernetes.io/limit-burst-multiplier: "n2"
每分钟限流连接数为 (n1+n1*n2)\n0
所以,当n2为定值的情况下,set rps=1和rpm=60并不等价。
解析
nginx的限流是一个队列模型。所以限流连接数为 队列长度+队列处理能力。
对应下面的配置即,rate为队列处理能力。burst为队列长度。
nginx配置
ingress控制器会把注解修改成如下nginx配置,此例子之修改了limit-rps=5或者limit-rpm=300,limit-burst-multiplier(放大系数)为默认值5。
# qps = 5
#实际效果为每分钟限流325
limit_req_zone $limit_cmRfaW5ncmVzcy1yZC1oZWxsby1sZWdhY3k zone=rd_ingress-rd-hello-legacy_rps:5m rate= 5r/s ;
limit_req zone=rd_ingress-rd-hello-legacy_rps burst=25 nodelay;
# qpm = 300
#实际效果为每分钟限流1800
limit_req_zone $limit_cmRfaW5ncmVzcy1yZC1oZWxsby1sZWdhY3k zone=rd_ingress-rd-hello-legacy_rpm:5m rate= 300r/m ;
limit_req zone=rd_ingress-rd-hello-legacy_rpm burst=1500 nodelay;
参考:
https://medium.com/titansoft-engineering/rate-limiting-for-your-kubernetes-applications-with-nginx-ingress-2e32721f7f57
https://www.nginx.com/blog/rate-limiting-nginx/
最新文章
- JAVA JPA - 示例用法
- 【原】javascript数组操作
- js022-高级技巧
- 204. Count Primes
- java版大数相乘
- vagrant WARNING: You are not using an encrypted connection
- Link-local address
- async 与 await异步编程活用基础
- Hash散列算法 Time33算法
- angular懒加载
- spring自动注入是单例还是多例?单例如何注入多例?
- Java反射交换两个整型变量的值
- Spring基于纯注解方式的使用
- 分布式 NewSQL 对比
- 用conda管理Python包
- Maven Web项目部署到Tomcat下问题
- java集合: ArrayList源码浅析
- error 1044 (42000):access denied for user ''@'localhost' to database 'quickapp' 解决方法
- sprintboot 发布
- 谷歌Chrome浏览器小于12px字号显示的BUG
热门文章
- 文字icon
- Cause: org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: org.xml.sax.SAXParseException; lineNumber: 49; columnNumber: 17; 元素类型为 ";configuration"; 的内容必须匹配 ";
- Java通过注解获取方法反射运行
- 探索如何在java中执行python脚本
- 第1关—print()函数与转换
- c# message (转)
- 如何在Axure RP 8.0 中打开页面指定的动态面板
- Python条件语句和基本数据类型
- Android自动化用例编写
- csdn 复制