设计方法论与估算
5 个知识点需求澄清、容量估算、CAP 权衡与可复用的设计四步法。
kp-001系统设计总览:定义、范围与面试形态kp-002需求澄清与功能边界:从开放问题到需求清单kp-003容量估算:QPS、存储、带宽与内存的推演方法kp-004一致性与可用性权衡:CAP 与 BASEkp-005设计四步法:框图、深挖、瓶颈、权衡
需求澄清、容量估算、CAP 权衡与可复用的设计四步法。
负载均衡、缓存、CDN、消息队列——把系统拼起来的标准件。
存储选型、索引与引擎、复制、分片与分布式事务。
限流、熔断、降级、超时重试与异地多活的故障隔离体系。
短链、Feed、秒杀、IM、搜索五个完整推演,全部带数字。
四阶段时间管理、结构化表达与追问应对。
架构演进与经典论文、前沿趋势、可观测性。
系统设计(System Design)研究的是:给定一组功能需求与非功能需求,如何把若干独立运行的组件(网关、服务、缓存、数据库、消息队列等)组织成一个可扩展、高可用、成本可控的整体。它与写代码不同——代码解决"怎么做对",系统设计解决"怎么在规模、故障与时间压力下依然站得住"。典型应用场景包括:后端/基础架构岗位的系统设计面试、新业务从零到一的架构选型、存量系统的扩容与容灾改造、以及技术方案评审中的方案陈述。
学习本库建议具备:一门后端语言的编程经验(会读写 HTTP 接口即可)、数据库基本用法(会写 SQL、建过表)、以及计算机网络基础(理解 TCP/HTTP、DNS 的作用)。这些前置知识本身不属于本库范围——本库默认你已掌握,只在直接相关处简要回顾。
| 模块 | 内容 | 知识点数 |
|---|---|---|
| 01-设计方法论与估算 | 需求澄清、容量估算、CAP 权衡、四步法 | 5 |
| 02-可扩展性构件 | 水平扩展、负载均衡、缓存、CDN、消息队列 | 6 |
| 03-数据层设计 | 选型、索引与存储引擎、复制、分库分表、分布式事务 | 5 |
| 04-可用性与容错 | 可用性度量、限流、熔断降级、超时重试幂等、异地多活 | 5 |
| 05-高频场景案例 | 短链、Feed、秒杀、IM、搜索五个完整推演 | 5 |
| 06-面试方法与表达 | 四阶段时间管理、结构化表达、失分点清单 | 3 |
| 07-工程实践与演进 | 架构演进与经典论文、前沿趋势、可观测性 | 3 |
共 7 个模块、32 个知识点,全部路径见 00-learning-path.md。
系统设计外延极广,本库按"面试与工程双轨、以构件与案例为骨架"收缩边界:不覆盖 Kubernetes 实操、具体云厂商产品定价、以及编程语言级性能调优;微服务治理只讲到网关、注册发现层面,服务网格(Service Mesh)仅在前沿趋势中提及。