关于本书
这是一份系统设计面试笔记的中文版,内容基于 Alex Xu 的《System Design Interview: An Insider's Guide》卷一与卷二(卷二与 Sahn Lam 合著)。英文原笔记由 liquidslr 整理,本站把 28 章全部译成简体中文,并配上原笔记的全部插图。
怎么读
- 基础篇(第 1 至 3 章):从单台服务器扩展到百万用户、粗略估算、系统设计面试的四步框架。建议先读,后面每一章都会用到。
- 卷一 · 经典系统设计(第 4 至 15 章):限流器、一致性哈希、键值存储、唯一 ID、短链接、爬虫、通知、信息流、聊天、搜索补全、YouTube、Google Drive。
- 卷二 · 进阶系统设计(第 16 至 28 章):附近服务、附近好友、Google 地图、分布式消息队列、指标监控、广告点击聚合、酒店预订、分布式邮件、对象存储、实时排行榜、支付、数字钱包、证券交易所。
每章基本按「理解问题、确定范围 → 高层设计 → 深入设计 → 总结」的顺序展开,和面试时的节奏一致。
阅读小技巧
- 按
Ctrl/⌘ K或/搜索全书。 - 手机上点屏幕左右两侧可以翻页,左上角 ☰ 打开目录。
- 阅读进度自动保存在本机浏览器,登录后可以跨设备同步。
- 点击插图可以查看大图。
延伸阅读
以下是原笔记附带的参考资料,按章节归类。
限流器
一致性哈希
- Consistent Hashing
- CS168: Introduction and Consistent Hashing:
- Apache Cassandra
- Scaling Discord
- Google Maglev
键值存储
- Amazon Dynamo
- Cassandra Architecture
- Google BigTable Architecture
- Amazon Dynamo DB Internals
- Design Patterns in Amazon Dynamo DB
- Internals of Amazon Dynamo DB
唯一 ID 生成器
网络爬虫
聊天系统
- How Discord stores billions of messages
- Flannel: An Application-Level Edge Cache to Make Slack Scale
搜索自动补全
YouTube
- YouTube Architecture
- YouTube scalability 2012
- Transcoding Videos at Scale
- Facebook Video Broadcasting
- Netflix Video Encoding at Scale
- Netflix Shot based encoding