注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)搞定系統(tǒng)設(shè)計(jì):面試敲開(kāi)大廠的門

搞定系統(tǒng)設(shè)計(jì):面試敲開(kāi)大廠的門

搞定系統(tǒng)設(shè)計(jì):面試敲開(kāi)大廠的門

定 價(jià):¥109.00

作 者: Alex Xu
出版社: 電子工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

購(gòu)買這本書可以去


ISBN: 9787121465499 出版時(shí)間: 2023-11-01 包裝: 平塑勒
開(kāi)本: 頁(yè)數(shù): 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

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

作者簡(jiǎn)介

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

圖書目錄

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

本目錄推薦

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