主题
面试速答(先看这里)
**一句话结论:**显然不能,这种想法太理想了。
60秒标准回答:
显然不能,这种想法太理想了。 单纯通过机器数量线性推算QPS是不成立的!
因为你的QPS,除了应用本身的影响之外,还瘦太多因素的影响了,包括网络层的负载均衡、服务调用这一层的网络延迟、负载均衡,消息这一层的消息堆积情况,数据存储这一层的线程池情况,CPU,内存等硬件情况都会对整体的QPS造成影响
最简单的例子,单机压测的时候,压测到300,加到10台机器,如果负载均衡算法并不均衡呢?如果给某个单机的QPS分到了500呢?是不是就扛不住了
**答题顺序:**结论 → 原理/机制 → 关键流程 → 场景与取舍 → 易错点
回答主线:
- **要点1:**因为你的QPS,除了应用本身的影响之外,还瘦太多因素的影响了,包括网络层的负载均衡、服务调用这一层的网络延迟、负载均衡,消息这一层的消息堆积情况,数据存储这一层的线程池情况,CPU,内存等硬件情况都会对整体的QPS造成影响。
- **要点2:**最简单的例子,单机压测的时候,压测到300,加到10台机器,如果负载均衡算法并不均衡呢?
- **要点3:**就算分的比较均匀,每台机器都不超过300,那问题是单机压测时候数据库也抗到300,而10台机器的时候,数据库可要抗3000啊,3000你可没压测过啊。
- **要点4:**不只是数据库,还有很多中间件 ,Redis、MySQL、MQ、XXL-JOB等等,甚至一些外部服务,短信服务,支付服务,网关服务等等,都会有影响的。
**记忆锚点:**QPS → 单机压测到300QPS → 数据存储这一层的线程 → XXL-JOB → Redis → MySQL
易错提醒:
- 显然不能,这种想法太理想了。
加分表达:
- 最简单的例子,单机压测的时候,压测到300,加到10台机器,如果负载均衡算法并不均衡呢?
- 数据库如果扛不住了,系统整体不就也扛不住了么。
- 如果给某个单机的QPS分到了500呢?
追问准备:
- 最简单的例子,单机压测的时候,压测到300,加到10台机器,如果负载均衡算法并不均衡呢?
- 如果给某个单机的QPS分到了500呢?
典型回答
显然不能,这种想法太理想了。单纯通过机器数量线性推算QPS是不成立的!
因为你的QPS,除了应用本身的影响之外,还瘦太多因素的影响了,包括网络层的负载均衡、服务调用这一层的网络延迟、负载均衡,消息这一层的消息堆积情况,数据存储这一层的线程池情况,CPU,内存等硬件情况都会对整体的QPS造成影响。
最简单的例子,单机压测的时候,压测到300,加到10台机器,如果负载均衡算法并不均衡呢?如果给某个单机的QPS分到了500呢?是不是就扛不住了。
就算分的比较均匀,每台机器都不超过300,那问题是单机压测时候数据库也抗到300,而10台机器的时候,数据库可要抗3000啊,3000你可没压测过啊。数据库如果扛不住了,系统整体不就也扛不住了么。
不只是数据库,还有很多中间件 ,Redis、MySQL、MQ、XXL-JOB等等,甚至一些外部服务,短信服务,支付服务,网关服务等等,都会有影响的。