注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡軟件與程序設計搞定系統(tǒng)設計:面試敲開大廠的門

搞定系統(tǒng)設計:面試敲開大廠的門

搞定系統(tǒng)設計:面試敲開大廠的門

定 價:¥109.00

作 者: Alex Xu
出版社: 電子工業(yè)出版社
叢編項:
標 簽: 暫缺

購買這本書可以去


ISBN: 9787121465499 出版時間: 2023-11-01 包裝: 平塑勒
開本: 頁數(shù): 字數(shù):  

內(nèi)容簡介

  系統(tǒng)設計面試被認為是所有技術面試中難度最大的面試,因為面試題的范圍都非常廣且模糊,其答案也是開放的,不存在標準答案或正確答案。本書是專門為準備系統(tǒng)設計面試的讀者而撰寫的,重點討論了分布式系統(tǒng)中的常用組件和大型Web應用的系統(tǒng)架構,涵蓋了幾類常見的典型應用,包括聊天系統(tǒng)、視頻流系統(tǒng)、文件存儲系統(tǒng)(云盤)、支付系統(tǒng)等,旨在幫助讀者掌握構建一個可擴展的系統(tǒng)所需的基礎知識,為面試做好充分準備。作為過來人,作者提出了應對面試題的“四步法”,即確定問題范圍→總體設計→細節(jié)設計→總結(jié),書中的案例基本上都是按照這個步驟進行解析的。這種解題框架有助于在面試時搞清楚系統(tǒng)的需求、限制和瓶頸,理清思路,有條不紊地作答。通過本書,讀者可以了解不同Web應用的系統(tǒng)設計方案的要點及采用的技術,據(jù)此查漏補缺,補齊自己知識體系中的短板,為面試成功增添更多的可能。而對于已經(jīng)是架構師的讀者而言,書中的案例將為他們提供新的思路和靈感,有助于他們在面試中更加從容地展現(xiàn)自己的設計思路和實踐經(jīng)驗。

作者簡介

  Alex Xu,卡耐基梅隆大學碩士,他是一位經(jīng)驗豐富的軟件工程師,也是一個創(chuàng)業(yè)者。他曾在Twitter、蘋果和Zynga等公司工作。他熱衷于設計和實現(xiàn)復雜的系統(tǒng)。徐江,畢業(yè)于瑞典皇家理工學院的系統(tǒng)生物學專業(yè),曾就職于Thoughtworks軟件技術有限公司,現(xiàn)在在寶潔公司擔任IT service manager,負責consumer relations。

圖書目錄

1 從0到100萬用戶的擴展
1.1 單服務器配置
1.2 數(shù)據(jù)庫
1.2.1 使用何種數(shù)據(jù)庫
1.3 縱向擴展 vs. 橫向擴展
1.4 負載均衡器
1.5 數(shù)據(jù)庫復制
1.6 緩存
1.6.1 緩存層
1.6.2 使用緩存時的注意事項
1.7 內(nèi)容分發(fā)網(wǎng)絡
1.7.1 使用CDN時的注意事項
1.8 無狀態(tài)網(wǎng)絡層
1.8.1 有狀態(tài)架構
1.8.2 無狀態(tài)架構
1.9 數(shù)據(jù)中心
1.10 消息隊列
1.11 記錄日志、收集指標與自動化
1.11.1 添加消息隊列和各種工具
1.12 數(shù)據(jù)庫擴展
1.12.1 縱向擴展
1.12.2 橫向擴展
1.13 用戶量達到甚至超過了100萬
2 封底估算
2.1 2的冪
2.2 每個程序員都應該知道的操作耗時
2.3 可用性相關的數(shù)字
2.4 案例:估算推特的QPS和存儲需求
2.5 小技巧
3 系統(tǒng)設計面試的框架
3.1 有效的系統(tǒng)設計面試的四個步驟
3.1.1 第一步:理解問題并確定設計的邊界
3.1.2 第二步:提議高層級的設計并獲得認同
3.1.3 第三步:設計繼續(xù)深入
3.1.4 第四步:總結(jié)
3.2 面試中每一步的時間分配
4 設計限流器
4.1 第一步:理解問題并確定設計的邊界
4.2 第二步:提議高層級的設計并獲得認同
4.2.1 在哪里實現(xiàn)限流器
4.2.2 流量限制算法
4.2.3 高層級架構
4.3 第三步:設計繼續(xù)深入
4.3.1 流量限制規(guī)則
4.3.2 超過流量的限制
4.3.3 詳細設計
4.3.4 分布式系統(tǒng)中的限流器
4.3.5 性能優(yōu)化
4.3.6 監(jiān)控
4.4 第四步:總結(jié)
5 設計一致性哈希系統(tǒng)
5.1 重新哈希的問題
5.2 一致性哈希
5.2.1 哈??臻g和哈希環(huán)
5.2.2 哈希服務器
5.2.3 哈希鍵
5.2.4 查找服務器
5.2.5 添加服務器
5.2.6 移除服務器
5.2.7 兩個問題
5.2.8 虛擬節(jié)點
5.2.9 找到受影響的鍵
5.3 總結(jié)
6 設計鍵值存儲系統(tǒng)
6.1 理解問題并確定設計的邊界
6.2 單服務器的鍵值存儲
6.3 分布式鍵值存儲
6.3.1 CAP理論
6.3.2 系統(tǒng)組件
6.3.3 數(shù)據(jù)分區(qū)
6.3.4 數(shù)據(jù)復制
6.3.5 一致性
6.3.6 不一致性的解決方案:版本控制
6.3.7 處理故障
6.3.8 系統(tǒng)架構圖
6.3.9 寫路徑
6.3.10 讀路徑
6.4 總結(jié)
7 設計分布式系統(tǒng)中的唯一ID生成器
7.1 第一步:理解問題并確定設計的邊界
7.2 第二步:提議高層級的設計并獲得認同
7.2.1 多主復制
7.2.2 UUID
7.2.3 工單服務器
7.2.4 推特的雪花系統(tǒng)
7.3 第三步:設計繼續(xù)深入
7.4 第四步:總結(jié)
8 設計URL縮短器
8.1 第一步:理解問題并確定設計的邊界
8.1.1 封底估算
8.2 第二步:提出高層級的設計并獲得認同
8.2.1 API端點
8.2.2 URL重定向
8.2.3 縮短URL
8.3 第三步:設計繼續(xù)深入
8.3.1 數(shù)據(jù)模型
8.3.2 哈希函數(shù)
8.3.3 深入探討URL縮短流程
8.3.4 深入探討URL重定向流程
8.4 第四步:總結(jié)
9 設計網(wǎng)絡爬蟲
9.1 第一步:理解問題并確定設計的邊界
9.2 第二步:提議高層級的設計并獲得認同
9.3 第三步:設計繼續(xù)深入
9.3.1 DFS vs. BFS
9.3.2 URL前線
9.3.3 HTML下載器
9.3.4 健壯性
9.3.5 可擴展性
9.3.6 檢測和避免有問題的內(nèi)容
9.4 第四步:總結(jié)
10 設計通知系統(tǒng)
10.1 第一步:理解問題并確定設計的邊界
10.2 第二步:提議高層級的設計并獲得認同
10.2.1 不同類型的通知
10.2.2 聯(lián)系信息的收集流程
10.2.3 通知的發(fā)送與接收流程
10.3 第三步:設計繼續(xù)深入
10.3.1 可靠性
10.3.2 其他組件和要考慮的因素
10.3.3 更新后的設計
10.4 第四步:總結(jié)
11 設計news feed系統(tǒng)
11.1 第一步:理解問題并確定設計的邊界
11.2 第二步:提議高層級的設計并獲得認同
11.2.1 news feed API
11.2.2 feed的發(fā)布
11.2.3 news feed的構建
11.3 第三步:設計繼續(xù)深入
11.3.1 深入探討feed的發(fā)布流程
11.3.2 深入探討news feed的獲取流程
11.3.3 緩存架構
11.4 第四步:總結(jié)
12 設計聊天系統(tǒng)
12.1 第一步:理解問題并確定設計的邊界
12.2 第二步:提議高層級的設計并獲得認同
12.2.1 輪詢
12.2.2 長輪詢
12.2.3 WebSocket
12.2.4 高層級設計
12.2.5 數(shù)據(jù)模型
12.3 第三步:設計繼續(xù)深入
12.3.1 服務發(fā)現(xiàn)
12.3.2 消息流
12.3.3 顯示在線狀態(tài)
12.4 第四步:總結(jié)
13 設計搜索自動補全系統(tǒng)
13.1 第一步:理解問題并確定設計的邊界
13.1.1 封底估算
13.2 第二步:提議高層級的設計并獲得認同
13.2.1 數(shù)據(jù)收集服務
13.2.2 查詢服務
13.3 第三步:設計繼續(xù)深入
13.3.1 字典樹數(shù)據(jù)結(jié)構
13.3.2 數(shù)據(jù)收集服務
13.3.3 查詢服務
13.3.4 字典樹操作
13.3.5 擴展存儲
13.4 第四步:總結(jié)
14 設計視頻分享系統(tǒng)
14.1 第一步:理解問題并確定設計的邊界
14.1.1 封底估算
14.2 第二步:提議高層級的設計并獲得認同
14.2.1 視頻上傳流程
14.2.2 視頻流式傳輸流程
14.3 第三步:設計繼續(xù)深入
14.3.1 視頻轉(zhuǎn)碼
14.3.2 有向無環(huán)圖模型
14.3.3 視頻轉(zhuǎn)碼架構
14.3.4 系統(tǒng)優(yōu)化
14.3.5 錯誤處理
14.4 第四步:總結(jié)
15 設計云盤
15.1 第一步:理解問題并確定設計的邊界
15.1.1 封底估算
15.2 第二步:提議高層級的設計并獲得認同
15.2.1 API
15.2.2 跳出單服務器設計
15.2.3 同步?jīng)_突
15.2.4 高層級設計
15.3 第三步:設計繼續(xù)深入
15.3.1 塊服務器
15.3.2 高一致性需求
15.3.3 元數(shù)據(jù)數(shù)據(jù)庫
15.3.4 上傳流程
15.3.5 下載流程
15.3.6 通知服務
15.3.7 節(jié)約存儲空間
15.3.8 故障處理
15.4 第四步:總結(jié)
16 設計支付系統(tǒng)
16.1 第一步:理解問題并確定設計的邊界
16.2 第二步:提議高層級的設計并獲得認同
16.2.1 收款流程
16.2.2 復式記賬系統(tǒng)(Double-Entry System)
16.2.3 托管支付頁面
16.2.4 付款流程
16.2.5 實時賣家儀表板
16.3 第三步:設計繼續(xù)深入
16.3.1 重試和冪等
16.3.2 同步支付 vs. 異步支付
16.3.3 一致性
16.3.4 處理支付失敗
16.3.5 支付安全
16.4 第四步:總結(jié)
17 設計指標監(jiān)控和告警系統(tǒng)
17.1 第一步:理解問題并確定設計的邊界
17.1.1 高層級需求
17.2 第二步:提議高層級的設計并獲得認同
17.2.1 基本原理
17.2.2 數(shù)據(jù)模型
17.2.3 高層級設計
17.3 第三步:設計繼續(xù)深入
17.3.1 指標數(shù)據(jù)的收集
17.3.2 擴展系統(tǒng)
17.3.3 查詢服務
17.3.4 存儲層
17.3.5 告警系統(tǒng)
17.3.6 可視化系統(tǒng)
17.4 第四步:總結(jié)
18 繼續(xù)學習
后記

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.afriseller.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號