高并发的世界观
在钻进任何一个具体场景之前,先花十分钟建立坐标系:什么才算"高"并发?工程师嘴里的黑话怎么读?以及为什么架构设计永远在"既要又要还要"里做减法。
高并发的定义:不是数字,是"压力感"
想象一家奶茶店:平时一分钟来 2 个客人,店员优哉游哉。突然网红探店视频爆了,一分钟涌进来 200 个人——店还是那个店,但一切都变了:排队排到马路上(请求堆积)、店员手忙脚乱做错单(数据出错)、收银机卡死(系统崩溃)。
高并发(High Concurrency)指的就是:系统在同一时间段内需要处理大量请求,多到单台机器、朴素写法已经扛不住,必须专门设计架构来应对的状态。
所以"高"没有绝对数字门槛——对一个用 SQLite 的博客,100 QPS 就是高并发;对淘宝双11,百万 QPS 才算进入状态。判断标准是"压力是否逼你改架构",而不是某个具体数值。
衡量高并发的核心指标
这五个词是全站的"通用货币",后面每一页都会反复出现。用奶茶店类比一次讲透。
系统每秒能处理多少个请求,衡量"店的接客速度"。写请求场景也常说 TPS(每秒事务数)。
一个请求从发出到收到结果的耗时,衡量"顾客从点单到拿到奶茶等了多久"。通常以毫秒计。
把所有请求的耗时从快到慢排序,第 99% 位置的那个值。平均值会骗人,P99 不会——它代表"最倒霉的那 1% 顾客等了多久"。
某一瞬间系统里"正在被服务"的请求数量。经典关系:并发数 ≈ QPS × 平均RT(利特尔法则)。RT 越长,同样 QPS 下积压的并发越多。
系统承诺的"营业可靠度"。99.9% 听起来很高,但换算成停机时间就直观了:
| 可用性 | 俗称 | 全年最多停机 | 直观感受 |
|---|---|---|---|
| 99% | 2个9 | ≈ 3.65 天 | 每月宕机大半天,用户会跑光 |
| 99.9% | 3个9 | ≈ 8.76 小时 | 一般内部系统的及格线 |
| 99.99% | 4个9 | ≈ 52.6 分钟 | 主流互联网服务的标配目标 |
| 99.999% | 5个9 | ≈ 5.26 分钟 | 金融/电信级,代价极其昂贵 |
高并发设计的"不可能三角"
性能、一致性、可用性——三者不可兼得的博弈,是理解一切架构取舍的钥匙。
性能 + 可用性,放一致性 → 短视频点赞
点赞数晚几秒才准没人在意,但页面必须秒开、服务不能挂。于是用缓存 + 异步落库,接受"最终一致"。这是互联网最常见的选择。
一致性 + 可用性,放性能 → 银行转账
钱错一分都不行,服务也要稳,那就上强事务、加锁、同步复制——代价是单笔更慢、吞吐更低,用更多机器和更贵的方案来堆。
性能 + 一致性,放可用性 → 秒杀限流拒绝
库存必须精确、下单必须快,那就干脆"拒绝"大部分人:限流、排队、验证码劝退——牺牲的是"每个人都能被服务"的可用体验。
🎯 全站主线
接下来 7 个场景,每一个都是这个三角形的不同"站位":秒杀偏一致、Feed 流偏性能、支付死守一致、弹幕彻底拥抱丢弃。看懂站位,就看懂了选型。