system-design-primer/README-zh-Hans.md at master · donnemartin/system-design-primer
AI 摘要 · Qwen 中文摘要 收录
查看原文 该前缀内容介绍了系统设计入门仓库的简体中文 README,涵盖面试准备、学习路径、常见面试题、设计权衡以及 DNS、CDN 和负载均衡等基础设施主题。
文档来源与目的
- 页面是 donnemartin/system-design-primer 仓库中 README-zh-Hans.md 的简体中文版本。
- 内容来自掘金翻译计划,并列出多位译者。
- 主要目的是帮助读者学习大型系统设计并为系统设计面试做准备。
- 文档说明这是一个持续更新的开源项目,欢迎贡献。
面试准备与学习路径
- 学习指引建议按短期、中期、长期目标复习系统设计主题。
- 短期以主题广度为主并练习一些面试题,中期增加初级深度,长期追求高级深度。
- 文档指出面试内容会受经验、技术背景、职位、公司和运气影响。
- 提供系统设计面试题、面向对象设计面试题以及其它面试题的复习建议。
面试题与解答
- 前缀列出了 Pastebin/Bit.ly、Twitter 时间线和搜索、网页爬虫、Mint.com 等系统设计题。
- 还列出社交网络数据结构、搜索引擎 key-value 存储、Amazon 销售排名和 AWS 百万用户系统。
- 相关解答位于 solutions 文件夹中。
- 面向对象设计部分包含 hash map、LRU 缓存、呼叫中心、停车场等题目,并标注该节仍在完善中。
系统设计面试方法
- 文档把系统设计面试描述为开放式对话,期望候选人主导讨论。
- 建议步骤包括描述使用场景、约束和假设,再创建高层设计。
- 随后设计核心组件,并扩展设计以处理瓶颈和限制。
- 还提到可能需要使用附录中的估算资源进行手算估算。
核心设计概念
- 前缀讨论了性能与可扩展性、延迟与吞吐量、可用性与一致性等基础权衡。
- CAP 理论指出分布式系统通常只能在一致性、可用性和分区容错性中同时满足两点。
- 一致性模式包括弱一致性、最终一致性和强一致性。
- 可用性模式包括故障切换和复制,例如 active-passive、active-active、主从复制和主主复制。
常见基础设施组件
- DNS 用于将域名解析为 IP 地址,并涉及 NS、MX、A、CNAME 等记录类型。
- CDN 通过靠近用户的节点提供内容,并区分推送和拉取两种模式。
- 负载均衡器用于分发请求、避免过载和单点故障,可支持 SSL 终结和 session 留存。
- 四层负载均衡基于传输层信息,七层负载均衡基于应用层内容。