深入理解系统设计面试
原书:Grokking-the-system-design-interview
目录
系统设计问题 (System Design Problems)
- 系统设计面试:循序渐进指南 (System Design Interviews: A step by step guide)
- 设计 URL 缩短服务,例如 TinyURL (Designing a URL Shortening service like TinyURL)
- 设计 Pastebin (Designing Pastebin)
- 设计 Instagram (Designing Instagram)
- 设计 Dropbox (Designing Dropbox)
- 设计 Facebook Messenger (Designing Facebook Messenger)
- 设计 Twitter (Designing Twitter)
- 设计 YouTube 或 Netflix (Designing Youtube or Netflix)
- 设计自动完成建议 (Designing Typeahead Suggestion)
- 设计 API 速率限制器 (Designing an API Rate Limiter)
- 设计 Twitter 搜索 (Designing Twitter Search)
- 设计网络爬虫 (Designing a Web Crawler)
- 设计 Facebook 的新闻订阅 (Designing Facebook’s Newsfeed)
- 设计 Yelp 或附近的朋友 (Designing Yelp or Nearby Friends)
- 设计 Uber 后端 (Designing Uber backend)
- 设计 Ticketmaster (Design Design Ticketmaster)
- 其他资源 (Additional Resources)
系统设计基础 (System Design Basics)
- 分布式系统的关键特性 (Key Characteristics of Distributed Systems)
- 负载均衡 (Load Balancing)
- 缓存 (Caching)
- 分片或数据分区 (Sharding or Data Partitioning)
- 索引 (Indexes)
- 代理 (Proxies)
- 冗余与复制 (Redundancy and Replication)
- SQL 与 NoSQL (SQL vs. NoSQL)
- CAP 定理 (CAP Theorem)
- 一致性哈希 (Consistent Hashing)
- 长轮询 vs WebSockets vs 服务器发送事件 (Long-Polling vs WebSockets vs Server-Sent Events)