背景:
一次压测, 后端服务端用 lvs 做负载均衡 lvs 背后有50台机器,每台机器限流 2w. 客户端用okhttp 调用, 有连接池. 空闲keepAlive 是30秒.
问题: 发现怎么压,都只能压到4w tps. 错误码都是说被限流.
原因分析:
lvs 的负载均衡是在建连的时候. 对方是 php, ngnix 下面不再负载均衡. 故连接池是后入后出的栈模式. 故大量的请求都集中在前几台中. 被限流了.
前提: 限流数的耗时 >> 实际耗时.
但是如果是 java, ngnix + tomcat 的模式. 反向代理. 就不会有这种模式, 负载均衡是在每次请求的时候.