系統設計面試(System Design Interview)

Alex Xu 以四步驟框架拆解系統設計面試,透過 16 個常見題型與大量圖解,說明從 URL shortener 到 YouTube、Google Drive 等可擴展系統的設計思路。內容涵蓋 sharding、load balancing、caching 與容量估算等核心能力。

11 sections · 35 lessons

Course outline

擴展的基本功

  1. 把伺服器和資料庫拆開
  2. 負載平衡器與無狀態設計
  3. 快取與 CDN
  4. 2 的次方
  5. 延遲與儲存空間
  6. 擴展的基本功

面試框架

  1. 釐清需求
  2. 設計與深入探討
  3. 面試框架

流量管理

  1. 令牌桶演算法
  2. 以視窗為基礎的速率限制
  3. 負載平衡演算法
  4. 流量管理

資料分散

  1. 一致性雜湊
  2. 虛擬節點
  3. 資料庫複寫
  4. 資料庫分片
  5. 資料分散

儲存系統

  1. SQL 與 NoSQL
  2. 鍵值儲存
  3. CAP 定理
  4. 分散式 ID 生成
  5. 儲存系統

快取

  1. Cache-Aside 與 Read-Through
  2. Write-Through 與 Write-Behind
  3. 快取

常見設計模式

  1. 短網址服務設計
  2. 網路爬蟲的禮貌原則
  3. 多管道通知
  4. 動態消息的扇出
  5. 常見設計模式

即時通訊

  1. WebSocket 聊天
  2. 聊天儲存與群組
  3. 自動完成與 Trie
  4. 即時通訊

媒體系統

  1. 影片上傳與轉碼
  2. 自適應位元率串流
  3. 檔案分塊與同步
  4. 中繼資料與衝突
  5. 媒體系統

非同步處理

  1. 訊息佇列的好處
  2. 傳遞保證與死信佇列(DLQ)
  3. 非同步處理

架構模式

  1. 無狀態架構原則
  2. 有狀態何時派上用場
  3. 架構模式

Start learning with Wondering