11 - 总结:高并发优化决策树
恭喜你走到最后一章。这一章不讲新知识,而是把整个系列收拢成一张决策树和一份速查表,让你遇到性能问题时,能按图索骥。
一句话总结全系列:高并发优化,就是「顺着请求链路层层拦截,让越昂贵的资源承担越少的请求;单机榨干后再水平扩展;并用限流降级熔断兜底」。
11.1 全系列思维导图
高并发优化
│
┌────────────────────┼────────────────────┐
▼ ▼ ▼
提高单机能力 横向扩展 自我保护
(先做,便宜) (后做,费钱) (兜底,防崩)
│ │ │
┌─┴──────┐ ┌────┴────┐ ┌────┴────┐
缓存 负载均衡 限流
异步削峰 读写分离 降级
池化 分库分表(系列三) 熔断
并发模型
11.2 优化决策树(遇到问题按这个走)
接口慢 / 扛不住?
│
▼
① 先压测:慢在哪?瓶颈是什么?
│
├─ 单次请求本身就慢?
│ → 优化 SQL、加索引(性价比最高,先做)
│
├─ 大量重复的读?
│ → 加缓存(Redis / 多级缓存)
│ 注意穿透/击穿/雪崩
│
├─ 慢任务拖累主流程 / 有流量尖峰?
│ → 异步化 + 消息队列削峰
│
├─ 频繁建连接/线程开销大?
│ → 池化(连接池、并发限制)
│
├─ 单机 CPU 没用满 / 连接扛不住?
│ → 选对并发模型(IO密集→异步,CPU密集→多进程)
│
├─ 单机到顶了?
│ → 水平扩展(无状态化 + 负载均衡)
│ → 读多写少:读写分离
│ → 数据量太大:分库分表(见系列三)
│
└─ 怕被突发流量/下游故障打崩?
→ 限流 + 降级 + 熔断
│
▼
② 再压测验证 → 瓶颈转移 → 回到 ①
11.3 八大手段速查表
| 手段 | 解决什么 | 本质 | 代价 | 章节 |
|---|---|---|---|---|
| 缓存 | 读压力大、重复查询 | 空间换时间 | 一致性问题 | 03 |
| 异步化 | 慢任务拖累主流程 | 非核心丢后台 | 数据延迟 | 04 |
| 削峰 | 突发流量打垮下游 | 队列当蓄水池 | 处理延迟 | 04 |
| 池化 | 频繁创建资源开销大 | 复用资源 | 需调优大小 | 05 |
| 负载均衡 | 单机应用扛不住 | 多机分流 | 需无状态 | 06 |
| 读写分离 | 读远多于写 | 读从库、写主库 | 主从延迟 | 06 |
| 限流 | 入口流量过大 | 超速率拒绝 | 拒绝部分请求 | 07 |
| 降级/熔断 | 系统过载/下游故障 | 丢卒保车、快速失败 | 牺牲部分功能 | 07 |
| 并发模型 | 单机吞吐上不去 | 异步/多进程 | 有使用陷阱 | 08 |
11.4 五条核心原则(记住这些就够了)
1. 先测量,再优化 —— 没有数据的优化是瞎猜
2. 层层拦截 —— 让越贵的资源承担越少的请求
3. 先榨干单机,再加机器 —— 从便宜到昂贵
4. 追求最终一致,而非强一致 —— 高并发和强一致难以兼得
5. 部分可用 > 全部崩溃 —— 兜底思维,丢卒保车
11.5 进阶方向
学完本系列,你已经有了完整的高并发优化直觉。想继续深入,可以往这些方向走:
- 数据库深挖 → 学习本项目的《数据库锁详解》《数据库优化:索引与分库分表》系列
- 分布式 → 分布式事务、分布式 ID、一致性哈希、CAP 理论
- 可观测性 → Prometheus + Grafana 实操、链路追踪
- 中间件原理 → 深入 Redis、消息队列、Nginx 的内部机制
- 实战 → 找一个真实项目做压测,跑一遍本系列的优化闭环
结语
高并发优化没有银弹,也没有「一招鲜」。它是一套分层的、有优先级的、需要权衡的工程思维。
记住那句贯穿始终的话:
顺着请求链路找瓶颈,让越贵的资源承担越少的请求;先榨干单机再水平扩展;并用限流降级熔断兜底。
祝你在真实项目里,把这套思维用起来。
上一章 ← 10 - 压测与监控 | 回到 README