更新时间:2024-01-18 11:54:27
封面
版权信息
作者简介
内容简介
译者序
前言
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 继续学习
后记