前两年做年中大促保障的时候,我们技术群里凌晨三点还在刷屏,核心交易接口的QPS从平时的几百一路飙到几万,监控面板上的红线一直在跳,那会儿我才真正意识到:高并发处理不是一个性能优化话题,而是一个系统设计的核心命题。后来陆陆续续帮朋友公司排查过几次线上事故,发现很多人对高并发的理解还停留在“加机器、调线程池”这个层面,结果一到业务抗峰的时候,系统就像被大水冲过的堤坝,到处都在漏水。
这篇文章我想把“高并发处理”这件事掰开揉碎了讲清楚。它到底在解决什么问题,衡量指标有哪些,业务抗峰要具备哪些能力,以及这些能力在实际落地的时候有哪些坑。不管你是刚接触后端开发的新人,还是已经在负责核心系统的架构师,这篇文章应该都能提供一些值得借鉴的思路。
1. 高并发处理到底在解决什么问题
1.1 高并发不是“快”,而是“稳”
很多人有个误区,觉得高并发处理就是让系统响应速度变快。其实高并发追求的核心指标是“稳定性”,不是“速度”。举一个很直白的例子:平时某接口只需要50毫秒就能返回结果,但当流量突然变成平时的50倍时,接口的响应时间可能从50毫秒劣化到5秒,这时候系统不是变慢了,而是接近崩溃了。
高并发场景的本质矛盾是:有限的系统资源,面对的是突发的、海量的请求压力。CPU有核数上限,内存有容量上限,数据库连接池有最大连接数,带宽有出口上限。当请求量逼近甚至超过这些上限时,系统就会进入不稳定状态,表现为超时、报错、阻塞,甚至整体不可用。
所以高并发处理的第一性原理,不是无限制地压缩单次请求的处理速度,而是通过架构设计和技术手段,让系统在极端流量下仍然保持“可控”的状态。这个“可控”,就是业务抗峰能力的基础。
1.2 搞懂几个核心指标:QPS、RT、并发数
聊高并发之前,先把几个高频指标说清楚,因为后面所有方案选型和容量评估,都建立在量化这些指标的基础上。
| 指标 | 全称 | 含义 | 类比 |
|---|---|---|---|
| QPS | Queries Per Second | 每秒查询/请求次数 | 每秒有多少顾客进店 |
| RT | Response Time | 平均响应时间 | 每笔交易耗时 |
| 并发数 | Concurrent Users | 系统同时处理的请求数 | 店里同时有多少顾客在结账 |
| TPS | Transactions Per Second | 每秒事务处理数 | 每秒完成多少笔完整交易 |
| TP99 | 99th Percentile | 99%的请求耗时在此值以内 | 绝大多数顾客的等待上限 |
这四个指标之间有一个重要的关系公式,也是业内做容量评估时最常用的:并发数 = QPS × RT。
举个例子,如果一个接口的QPS是2000,平均RT是200毫秒(0.2秒),那么系统同时处理的请求数就是 2000 × 0.2 = 400。如果这个接口的服务是单实例部署,每台机器的线程池设置是200,那么至少需要2台机器的线程池才能扛住,这还没算流量毛刺和机器损耗。
做容量规划的时候,不能只看平均RT,还要看TP99,因为平均RT会被大量快速请求拉低,掩盖长尾耗时的问题。我见过太多系统,平均RT看起来只有150毫秒,但TP99已经到2秒了,这种系统的稳定性其实很差,一旦流量上来,长尾请求会拖垮整体。
1.3 业务抗峰的典型场景
搞懂了指标之后,再来看业务抗峰具体面对什么场景。最典型的有这么几类:
- 电商大促:比如618、双11,流量曲线在零点附近呈脉冲状拉升,涨幅可能是日常的50倍以上,持续几十分钟到几小时。
- 秒杀/抢购:小米新品首发、门票抢购,瞬间涌入的流量可达平时的数百倍,持续几秒到几分钟,但破坏力极大。
- 热点事件:突发新闻、热搜话题带来的瞬时访问洪峰,没有预兆,没有规律,持续时间不确定。
- 集中放号/名单公布:某些政务或行业性质的集中放号、成绩查询、摇号结果公布,流量在公告时间点瞬间到达。
- 大规模营销活动:优惠券发放、直播间的团购秒杀,流量集中在活动开始的瞬间。
这些场景都有一个共同特征:在极短时间内,流量远超出系统日常承载能力。如果按照峰值流量来长期准备资源,成本会高得离谱;如果按日常流量准备资源,峰值一来系统就崩。高并发处理和业务抗峰的实质,就是在这两者之间寻找一个平衡——用有限资源,扛住极端流量。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 业务抗峰的架构设计核心
2.1 无状态化:弹性伸缩的前提
业务抗峰的第一步,不是加机器,而是确保系统可以加机器。很多系统加不了机器,是因为“
