系統設計面試(System Design Interview)
Alex Xu 以四步驟框架拆解系統設計面試,透過 16 個常見題型與大量圖解,說明從 URL shortener 到 YouTube、Google Drive 等可擴展系統的設計思路。內容涵蓋 sharding、load balancing、caching 與容量估算等核心能力。
11 sections · 35 lessons
Course outline
擴展的基本功
- 把伺服器和資料庫拆開
- 負載平衡器與無狀態設計
- 快取與 CDN
- 2 的次方
- 延遲與儲存空間
- 擴展的基本功
面試框架
- 釐清需求
- 設計與深入探討
- 面試框架
流量管理
- 令牌桶演算法
- 以視窗為基礎的速率限制
- 負載平衡演算法
- 流量管理
資料分散
- 一致性雜湊
- 虛擬節點
- 資料庫複寫
- 資料庫分片
- 資料分散
儲存系統
- SQL 與 NoSQL
- 鍵值儲存
- CAP 定理
- 分散式 ID 生成
- 儲存系統
快取
- Cache-Aside 與 Read-Through
- Write-Through 與 Write-Behind
- 快取
常見設計模式
- 短網址服務設計
- 網路爬蟲的禮貌原則
- 多管道通知
- 動態消息的扇出
- 常見設計模式
即時通訊
- WebSocket 聊天
- 聊天儲存與群組
- 自動完成與 Trie
- 即時通訊
媒體系統
- 影片上傳與轉碼
- 自適應位元率串流
- 檔案分塊與同步
- 中繼資料與衝突
- 媒體系統
非同步處理
- 訊息佇列的好處
- 傳遞保證與死信佇列(DLQ)
- 非同步處理
架構模式
- 無狀態架構原則
- 有狀態何時派上用場
- 架構模式