高性能系统知识体系:CDN、负载均衡、数据库优化、缓存与消息队列
高性能不是一个知识点,而是一条请求链路:流量从用户侧进来,经过 CDN、负载均衡、应用服务、缓存、数据库、消息队列,每一环都可能成为瓶颈。这份学习地图按链路把高性能模块的文章分成四组,并给出由面到点的学习顺序,帮助你把零散的技巧串成体系。
先想清楚在优化什么
性能优化的目标可以归到四类:降低延迟(尤其是 P99 长尾)、提升吞吐、削峰填谷、降低数据库压力。评价任何方案之前先明确当前场景卡在哪一项——盲目加缓存、上 MQ,常常只是把单机问题升级成分布式问题。面试中同理,先确认 QPS、数据量、读写比和一致性要求,再谈方案,比直接堆名词稳得多。
主题分组
流量入口与请求分发
- 负载均衡原理及算法详解:四层与七层负载均衡的区别、服务端与客户端两种模式、轮询/一致性哈希等调度算法。
这一组解决”流量怎么进来、怎么摊到多台机器上”的问题,是水平扩展的入口。
数据库与数据访问优化
- 常见 SQL 优化手段总结:慢查询定位、索引设计、执行计划分析。
- 深度分页介绍及优化建议:
LIMIT 1000000,10慢在哪、游标分页与延迟关联。 - 数据冷热分离详解:冷热判定、分层存储、迁移一致性与查询路由。
- 读写分离和分库分表详解:主从复制、垂直/水平拆分及拆分后的代价。
单表扛不住时按”索引优化 → 读写分离 → 冷热分离 → 分库分表”的顺序逐级升级,每一步都用复杂度换容量。
消息队列与异步削峰
- 消息队列基础知识总结:异步、解耦、削峰三大价值与消息可靠性、顺序性、幂等。
- 消息队列面试题总结:按消息生命周期整理的问题清单。
- 按技术栈深入:Kafka、RocketMQ、RabbitMQ、Disruptor。
推荐学习顺序
- 建问题清单:先看 高性能系统设计面试题总结,知道高频考点在哪,带着问题学。
- 入口层:负载均衡,理解流量分发的位置与算法。
- 数据层主线:SQL 优化 → 深分页 → 读写分离与分库分表 → 冷热分离。这是面试和实战中出现频率最高的一组。
- 异步层:消息队列基础 → 面试题 → 按公司技术栈挑一个 MQ 深入。
- 回到链路:学完后试着完整推演一次”大促下单”链路,指出每一段的瓶颈候选和对应手段,能讲通才算掌握。
学习建议
- 每学一个方案都问三个问题:解决什么瓶颈、引入什么新问题(一致性、复杂度、运维成本)、什么规模下才值得用。
- 方案没有普适结论。读写分离在小流量下是浪费,分库分表在百万级数据时是杀鸡用牛刀,结论必须带前提。
- 配合压测和慢查询日志等一手证据学习,只背目录形成不了工程判断力。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Dai Wei!
评论

