编辑推荐
一本关于系统设计的面试指南。
内容简介
系统设计面试被认为是所有技术面试中难度最大的面试,因为面试题的范围都非常广且模糊,其答案也是开放的,不存在标准答案或正确答案。
本书重点讨论了分布式系统中的常用组件和大型Web应用的系统架构,涵盖了几类常见的典型应用,包括聊天系统、视频流系统、文件存储系统(云盘)、支付系统等,旨在帮助读者掌握构建一个可扩展的系统所需的基础知识,为面试做好充分准备。
作为过来人,作者提出了应对面试题的“四步法”,即确定问题范围-总体设计-细节设计-总结,书中的案例基本上都是按照这个步骤进行解析的。这种独特的呈现方式,直接针对面试者在面试过程中可能遇到的问题,帮助他们厘清思路,有条不紊地作答。
通过本书,读者可以了解不同Web应用的系统设计方案的要点及采用的技术,据此查漏补缺,补齐自己知识体系中的短板,为面试成功增添更多的可能。而对于已经是架构师的读者而言,书中的案例将为他们提供新的思路和灵感,有助于他们在面试中更加从容地展现自己的设计思路和实践经验。
作者简介
作者Alex Xu,卡耐基梅隆大学硕士,曾在Twitter、苹果和Zynga等公司工作。热衷于设计和实现复杂的系统。
章节目录
版权信息
内容简介
译者序
前言
1 从0到100万用户的扩展
1.1 单服务器配置
1.2 数据库
1.3 纵向扩展vs.横向扩展
1.4 负载均衡器
1.5 数据库复制
1.6 缓存
1.7 内容分发网络
1.8 无状态网络层
1.9 数据中心
1.10 消息队列
1.11 记录日志、收集指标与自动化
1.12 数据库扩展
1.13 用户量达到甚至超过了100万
2 封底估算
2.1 2的幂
2.2 每个程序员都应该知道的操作耗时
2.3 可用性相关的数字
2.4 案例:估算推特的QPS和存储需求
2.5 小技巧
3 系统设计面试的框架
3.1 有效的系统设计面试的四个步骤
3.2 面试中每一步的时间分配
4 设计限流器
4.1 第一步:理解问题并确定设计的边界
4.2 第二步:提议高层级的设计并获得认同
4.3 第三步:设计继续深入
4.4 第四步:总结
5 设计一致性哈希系统
5.1 重新哈希的问题
5.2 一致性哈希
5.3 总结
6 设计键值存储系统
6.1 理解问题并确定设计的边界
6.2 单服务器的键值存储
6.3 分布式键值存储
6.4 总结
7 设计分布式系统中的唯一ID生成器
7.1 第一步:理解问题并确定设计的边界
7.2 第二步:提议高层级的设计并获得认同
7.3 第三步:设计继续深入
7.4 第四步:总结
8 设计URL缩短器
8.1 第一步:理解问题并确定设计的边界
8.2 第二步:提出高层级的设计并获得认同
8.3 第三步:设计继续深入
8.4 第四步:总结
9 设计网络爬虫
9.1 第一步:理解问题并确定设计的边界
9.2 第二步:提议高层级的设计并获得认同
9.3 第三步:设计继续深入
9.4 第四步:总结
10 设计通知系统
10.1 第一步:理解问题并确定设计的边界
10.2 第二步:提议高层级的设计并获得认同
10.3 第三步:设计继续深入
10.4 第四步:总结
11 设计news feed系统
11.1 第一步:理解问题并确定设计的边界
11.2 第二步:提议高层级的设计并获得认同
11.3 第三步:设计继续深入
11.4 第四步:总结
12 设计聊天系统
12.1 第一步:理解问题并确定设计的边界
12.2 第二步:提议高层级的设计并获得认同
12.3 第三步:设计继续深入
12.4 第四步:总结
13 设计搜索自动补全系统
13.1 第一步:理解问题并确定设计的边界
13.2 第二步:提议高层级的设计并获得认同
13.3 第三步:设计继续深入
13.4 第四步:总结
14 设计视频分享系统
14.1 第一步:理解问题并确定设计的边界
14.2 第二步:提议高层级的设计并获得认同
14.3 第三步:设计继续深入
14.4 第四步:总结
15 设计云盘
15.1 第一步:理解问题并确定设计的边界
15.2 第二步:提议高层级的设计并获得认同
15.3 第三步:设计继续深入
15.4 第四步:总结
16 设计支付系统
16.1 第一步:理解问题并确定设计的边界
16.2 第二步:提议高层级的设计并获得认同
16.3 第三步:设计继续深入
16.4 第四步:总结
17 设计指标监控和告警系统
17.1 第一步:理解问题并确定设计的边界
17.2 第二步:提议高层级的设计并获得认同
17.3 第三步:设计继续深入
17.4 第四步:总结
18 继续学习
后记
搞定系统设计:面试敲开大厂的门是2023年由电子工业出版社出版,作者Alex Xu。
得书感谢您对《搞定系统设计:面试敲开大厂的门》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。