首页 / 知识库 / python服务端进阶 / 服务端高并发优化

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