Skip to content

高并发系统设计 40 问

系统掌握高并发系统设计核心能力,从指标到实战。

能力图谱

模块核心能力
基础认知QPS/TPS/RT指标、瓶颈定位、架构演进、容量评估
缓存设计穿透/击穿/雪崩、Redis集群、Cache Aside、一致性
消息队列Kafka/RocketMQ、消息可靠性、事务消息、积压处理
分库分表拆分策略、分片键、全局ID、分布式事务、数据迁移
高可用设计限流算法、熔断降级、超时重试、负载均衡、多活
服务治理注册发现、分布式锁、链路追踪、API网关、RPC
场景实战秒杀系统、Feed流、计数系统、通知推送

学习计划

阶段内容周数
L1: 基础认知与架构演进指标、瓶颈、演进路径1-2周
L2: 缓存设计穿透/击穿/雪崩、Redis、一致性3-4周
L3: 消息队列Kafka/RocketMQ、可靠性保证5-6周
L4: 分库分表拆分策略、分片键、分布式事务7-8周
L5: 高可用设计限流/熔断/降级、超时重试9-10周
L6: 服务治理注册发现、分布式锁、链路追踪11-12周
L7: 场景实战秒杀/Feed/计数/通知13-14周
L8: 分布式服务治理注册发现、分布式锁、链路追踪15-16周
L9: 同城双活与容灾设计同城双活、异地多活、混沌工程17-18周

专题总结

常见坑点

  1. 缓存雪崩:大量 Key 同时过期,瞬间击穿到数据库
  2. 缓存穿透:查询不存在的数据,绕过缓存直击数据库
  3. 缓存击穿:热点 Key 失效,并发请求压垮数据库
  4. 消息丢失:生产端确认、消费端幂等未做好
  5. 消息积压:消费速度跟不上生产速度,队列堆积
  6. 分布式事务:强一致性代价大,需根据场景选择方案
  7. 分片键选择:错误分片键导致数据倾斜和跨片查询
  8. 超时设置:超时过短导致重试风暴,过长拖垮上游
  9. 限流粒度:全局限流 vs 接口限流 vs 用户限流,需分层设计

面试高频问题

类别典型问题
架构设计如何设计一个支撑百万 QPS 的系统?
缓存Redis 和 MySQL 数据一致性怎么保证?
消息队列如何保证消息不丢、不重、有序?
分库分表分片键怎么选?跨片查询怎么处理?
高可用限流、熔断、降级各自的适用场景?
实战秒杀系统如何防止超卖?

学习建议

本路线按照基础认知 -> 单点突破 -> 组合实战的顺序编排,建议按阶段推进。每个阶段先理解原理,再结合场景思考应用方式,最后动手验证。重点关注各组件之间的协作关系,高并发系统的难点不在于单个技术点,而在于全局的权衡与取舍。


实战项目: 本路线核心知识点已在 Ecommerce Microservices 项目中落地 -- 多级缓存 (L1 本地 + L2 Redis)、防穿透/雪崩/击穿、分布式锁 (Lua 安全释放)、熔断降级 (CircuitBreaker 三态机)、原子限流、Kafka 异步解耦。

基于 VitePress 构建