奇迹小说
搜索历史
搞定系统设计:面试敲开大厂的门

搞定系统设计:面试敲开大厂的门

作者: AlexXu 著

11.37万1人 正在读

已完结现代当代当代文学
作品简介

系统设计面试被认为是所有技术面试中难度最大的面试,因为面试题的范围都非常广且模糊,其答案也是开放的,不存在标准答案或正确答案。本书是专门为准备系统设计面试的读者而撰写的,重点讨论了分布式系统中的常用组件和大型Web 应用的系统架构,涵盖了几类常见的典型应用,包括聊天系统、视频流系统、文件存储系统(云盘)、支付系统等,旨在帮助读者掌握构建一个可扩展的系统所需的基础知识,为面试做好充分准备。 作为过来人,作者提出了应对面试题的“四步法”,即确定问题范围→总体设计→细节设计→总结,书中的案例基本上都是按照这个步骤进行解析的。这种独特的呈现方式,直接针对面试者在面试过程中可能遇到的问题,帮助他们厘清思路,有条不紊地作答。 通过本书,读者可以了解不同Web 应用的系统设计方案的要点及采用的技术,据此查漏补缺,补齐自己知识体系中的短板,为面试成功增添更多的可能。而对于已经是架构师的读者而言,书中的案例将为他们提供新的思路和灵感,有助于他们在面试中更加从容地展现自己的设计思路和实践经验。

目录 (215章)
倒序
正文
1从0到100万用户的扩展1.1单服务器配置1.2数据库1.2.1使用何种数据库1.3纵向扩展vs.横向扩展1.4负载均衡器1.5数据库复制1.6缓存1.6.1缓存层1.6.2使用缓存时的注意事项1.7内容分发网络1.7.1使用CDN时的注意事项1.8无状态网络层1.8.1有状态架构1.8.2无状态架构1.9数据中心1.10消息队列1.11记录日志、收集指标与自动化1.11.1添加消息队列和各种工具1.12数据库扩展1.12.1纵向扩展1.12.2横向扩展1.13用户量达到甚至超过了100万2.12的幂2.3可用性相关的数字2.4案例:估算推特的QPS和存储需求2.5小技巧3系统设计面试的框架3.1有效的系统设计面试的四个步骤3.1.1第一步:理解问题并确定设计的边界3.1.2第二步:提议高层级的设计并获得认同3.1.3第三步:设计继续深入3.1.4第四步:总结3.2面试中每一步的时间分配4设计限流器4.1第一步:理解问题并确定设计的边界4.2第二步:提议高层级的设计并获得认同4.2.1在哪里实现限流器4.2.2流量限制算法4.2.3高层级架构4.3第三步:设计继续深入4.3.1流量限制规则4.3.2超过流量的限制4.3.3详细设计4.3.4分布式系统中的限流器4.3.5性能优化4.3.6监控4.4第四步:总结5设计一致性哈希系统5.1重新哈希的问题5.2一致性哈希5.2.1哈希空间和哈希环5.2.2哈希服务器5.2.3哈希键5.2.4查找服务器5.2.5添加服务器5.2.6移除服务器5.2.7两个问题5.2.8虚拟节点5.2.9找到受影响的键5.3总结6设计键值存储系统6.1理解问题并确定设计的边界6.2单服务器的键值存储6.3分布式键值存储6.3.1CAP理论6.3.2系统组件6.3.3数据分区6.3.4数据复制6.3.5一致性6.3.6不一致性的解决方案:版本控制6.3.7处理故障6.3.8系统架构图6.3.9写路径6.3.10读路径6.4总结7设计分布式系统中的唯一ID生成器7.1第一步:理解问题并确定设计的边界7.2第二步:提议高层级的设计并获得认同7.2.1多主复制7.2.2UUID7.2.3工单服务器7.2.4推特的雪花系统7.3第三步:设计继续深入7.4第四步:总结8设计URL缩短器8.1第一步:理解问题并确定设计的边界8.2第二步:提出高层级的设计并获得认同8.2.1API端点8.2.2URL重定向8.2.3缩短URL8.3第三步:设计继续深入8.3.1数据模型8.3.2哈希函数8.3.3深入探讨URL缩短流程8.3.4深入探讨URL重定向流程8.4第四步:总结9设计网络爬虫9.1第一步:理解问题并确定设计的边界9.2第二步:提议高层级的设计并获得认同9.3第三步:设计继续深入9.3.1DFSvs.BFS9.3.2URL前线9.3.3HTML下载器9.3.4健壮性9.3.5可扩展性9.3.6检测和避免有问题的内容9.4第四步:总结10设计通知系统10.1第一步:理解问题并确定设计的边界10.2第二步:提议高层级的设计并获得认同10.2.1不同类型的通知10.2.2联系信息的收集流程10.2.3通知的发送与接收流程10.3第三步:设计继续深入10.3.1可靠性10.3.2其他组件和要考虑的因素10.3.3更新后的设计10.4第四步:总结11设计newsfeed系统11.1第一步:理解问题并确定设计的边界11.2第二步:提议高层级的设计并获得认同11.2.1newsfeedAPI11.2.2feed的发布11.2.3newsfeed的构建11.3第三步:设计继续深入11.3.1深入探讨feed的发布流程11.3.2深入探讨newsfeed的获取流程11.3.3缓存架构11.4第四步:总结12设计聊天系统12.1第一步:理解问题并确定设计的边界12.2第二步:提议高层级的设计并获得认同12.2.1轮询12.2.2长轮询12.2.3WebSocket12.2.4高层级设计12.2.5数据模型12.3第三步:设计继续深入12.3.1服务发现12.3.2消息流12.3.3显示在线状态12.4第四步:总结13设计搜索自动补全系统13.1第一步:理解问题并确定设计的边界13.2第二步:提议高层级的设计并获得认同13.2.1数据收集服务13.2.2查询服务13.3第三步:设计继续深入13.3.1字典树数据结构13.3.2数据收集服务13.3.3查询服务13.3.4字典树操作13.3.5扩展存储13.4第四步:总结14设计视频分享系统14.1第一步:理解问题并确定设计的边界14.2第二步:提议高层级的设计并获得认同14.2.1视频上传流程14.2.2视频流式传输流程14.3第三步:设计继续深入14.3.1视频转码14.3.2有向无环图模型14.3.3视频转码架构14.3.4系统优化14.3.5错误处理14.4第四步:总结15设计云盘15.1第一步:理解问题并确定设计的边界15.2第二步:提议高层级的设计并获得认同15.2.1API15.2.2跳出单服务器设计15.2.3同步冲突15.2.4高层级设计15.3第三步:设计继续深入15.3.1块服务器15.3.2高一致性需求15.3.3元数据数据库15.3.4上传流程15.3.5下载流程15.3.6通知服务15.3.7节约存储空间15.3.8故障处理15.4第四步:总结16设计支付系统16.1第一步:理解问题并确定设计的边界16.2第二步:提议高层级的设计并获得认同16.2.1收款流程16.2.2复式记账系统(Double-EntrySystem)16.2.3托管支付页面16.2.4付款流程16.2.5实时卖家仪表板16.3第三步:设计继续深入16.3.1重试和幂等16.3.2同步支付vs.异步支付16.3.3一致性16.3.4处理支付失败16.3.5支付安全16.4第四步:总结17设计指标监控和告警系统17.1第一步:理解问题并确定设计的边界17.1.1高层级需求17.2第二步:提议高层级的设计并获得认同17.2.1基本原理17.2.2数据模型17.2.3高层级设计17.3第三步:设计继续深入17.3.1指标数据的收集17.3.2扩展系统17.3.3查询服务17.3.4存储层17.3.5告警系统17.3.6可视化系统17.4第四步:总结18继续学习
精选推荐
销售心理学

销售心理学

[中国纺织出版社]

兰华

已完结当代文学

销售就是玩转情商

销售就是玩转情商

[中国纺织出版社]

王威

已完结当代文学

销售员情商实战训练

销售员情商实战训练

成功的销售需要高智商,更需要高情商。一个销售员的销售业绩,往往与他的情商成正比。本书从十个方面详细讲述了有效运用情商,提高销售业绩的方法和技巧。通过实际销售案例和销售心理学理论指导,以及实战点拨和情商拓展训练,帮助读者全方位、快速提高情商。故事性、多版块、碎片化的内容设置,有效降低读者阅读疲劳,提高阅读兴趣,不论是奔波在路上的销售小白,还是带领团队奋勇向前的销售经理,都能从中找到适合自己的销售软技巧。

刘军

已完结当代文学

让未来的你,感谢现在勇敢的自己

让未来的你,感谢现在勇敢的自己

[中国纺织出版社]

王介威

已完结当代文学

行为心理学入门(完全图解版)

行为心理学入门(完全图解版)

行为心理学入门(完全图解版)是以作者多来年的心理辅导和咨询数据为素材,对现实生活中的行为心理学应用进行了形象、深入、全面的论述和解读。本书与日本心理学图解书形式相同,浅显易读,有趣又益。

武莉

已完结当代文学

自制力:道理我都懂,为什么就是过不好人生

自制力:道理我都懂,为什么就是过不好人生

[中国纺织出版社]

邱开杰

已完结当代文学

能力与格局

能力与格局

[中国纺织出版社]

龙泽

已完结当代文学

羊皮卷

羊皮卷

[中国纺织出版社]

赵文武

已完结当代文学

组织领导力:组织高效运营与领导策略

组织领导力:组织高效运营与领导策略

[中国纺织出版社]

谢良鸿

已完结当代文学