| *數量非實際在台庫存 *完成訂單後正常情形下約兩周可抵台。 *本賣場提供之資訊僅供參考,以到貨標的為實際資訊。 印行年月:202311*若逾兩年請先於私訊洽詢存貨情況,謝謝。 台灣(台北市)在地出版社,每筆交易均開具統一發票,祝您中獎最高1000萬元。 書名:搞定系統設計-面試敲開大廠的門 ISBN:9787121465499 出版社:電子工業 著編譯者:Alex Xu 頁數:312 所在地:中國大陸 *此為代購商品 書號:1596262 可大量預訂,請先連絡。 內容簡介 系統設計面試被認為是所有技術面試中難度最大的面試,因為面試題的範圍都非常廣且模糊,其答案也是開放的,不存在標準答案或正確答案。本書是專門為準備系統設計面試的讀者而撰寫的,重點討論了分散式系統中的常用組件和大型Web應用的系統架構,涵蓋了幾類常見的典型應用,包括聊天系統、視頻流系統、文件存儲系統(雲盤)、支付系統等,旨在幫助讀者掌握構建一個可擴展的系統所需的基礎知識,為面試做好充分準備。 作為過來人,作者提出了應對面試題的「四步法」,即確定問題範圍→總體設計→細節設計→總結,書中的案例基本上都是按照這個步驟進行解析的。這種解題框架有助於在面試時搞清楚系統的需求、限制和瓶頸,理清思路,有條不紊地作答。 通過本書,讀者可以了解不同Web應用的系統設計方案的要點及採用的技術,據此查漏補缺,補齊自己知識體系中的短板,為面試成功增添更多的可能。而對於已經是架構師的讀者而言,書中的案例將為他們提供新的思路和靈感,有助於他們在面試中更加從容地展現自己的設計思路和實踐經驗。作者簡介 Alex,85后,就職于北京某互聯網公司,迷戀許巍,喜歡一切讓自己熱血沸騰的事物。 他寫自己的經歷,寫同行人的故事,真實而深刻,固執地想要用文字陪伴一起追夢的年輕人,激勵彼此執著向前。目錄 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 封底估算 2 1 2的冪 2 2 每個程序員都應該知道的操作耗時 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 1 CAP理論 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 2 UUID 7 2 3 工單伺服器 7 2 4 推特的雪花系統 7 3 第三步:設計繼續深入 7 4 第四步:總結 8 設計URL縮短器 8 1 第一步:理解問題並確定設計的邊界 8 1 1 封底估算 8 2 第二步:提出高層級的設計並獲得認同 8 2 1 API端點 8 2 2 URL重定向 8 2 3 縮短URL 8 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 1 DFS vs BFS 9 3 2 URL前線 9 3 3 HTML下載器 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 設計news feed系統 11 1 第一步:理解問題並確定設計的邊界 11 2 第二步:提議高層級的設計並獲得認同 11 2 1 news feed API 11 2 2 feed的發布 11 2 3 news feed的構建 11 3 第三步:設計繼續深入 11 3 1 深入探討feed的發布流程 11 3 2 深入探討news feed的獲取流程 11 3 3 緩存架構 11 4 第四步:總結 12 設計聊天系統 12 1 第一步:理解問題並確定設計的邊界 12 2 第二步:提議高層級的設計並獲得認同 12 2 1 輪詢 12 2 2 長輪詢 12 2 3 WebSocket 12 2 4 高層級設計 12 2 5 數據模型 12 3 第三步:設計繼續深入 12 3 1 服務發現 12 3 2 消息流 12 3 3 顯示在線狀態 12 4 第四步:總結 13 設計搜索自動補全系統 13 1 第一步:理解問題並確定設計的邊界 13 1 1 封底估算 13 2 第二步:提議高層級的設計並獲得認同 13 2 1 數據收集服務 13 2 2 詳細資料或其他書籍請至台灣高等教育出版社查詢,查後請於PChome商店街私訊告知ISBN或書號,我們即儘速上架。 |