如何预估/回答接口本身能抗住多少 QPS
与哪些因素有关
- 后端服务器集群节点数量,数量越多,QPS越高
- 后端服务器节点的运行配置:运行内存、Cpu核数等等,硬件资源决定单节点处理能力
- 接口本身做的事情
a. 做的事情多耗时长(预估QPS会相对应低)
b. 做的事情少耗时短(预估QPS会相对应高)
4.系统架构
a. 完善的流量负载均衡架构,实现流量的有效分发和负载均衡,避免成为QPS瓶颈
b. 缓存技术,减轻数据库的压力,避免数据库成为QPS瓶颈
c. 集群模式的数据库,避免数据库成为QPS瓶颈
d. 静态资源通过CDN加速,避免成为QPS瓶颈
如何预估?
首先需要知道一个请求处理完毕的时间(这个请求里可能做很多事情,但是这个我们暂时不管),一个请求处理完毕的时间我们是可以知道的。(我们去调用这个接口多次得到平均值即可)
理论计算公式
- QPS(单节点) = 线程数(如 Tomcat 线程池)/ 平均请求处理时间(秒)
a. 例如:若线程池大小为 200,单个请求处理时间为 50ms(0.05秒)
ⅰ. SprigBoot 默认使用Tomcat,而Tomcat线程池的最大线程数就是200,所以在默认配置下,SprigBoot 应用可以并发处理 200 请求
则 QPS(单节点) = 200 / 0.05= 4000
2.QPS(集群)= QPS(单节点)* 节点数
例如集群有4个节点,则 QPS(集群)= 4000 * 4 = 16000
单个请求处理的时间是受到
“系统架构”、“接口本身做的事情”“后端服务器节点运行配置”“后端服务器节点数量”
等等因素共同影响的 但这实际上是一个近似已知值(我们去调
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
Java后端开发总结 文章被收录于专栏
Java后端开发总结