系統設計面試(System Design Interview)

這門課將帶你掌握清晰的四步驟架構,助你自信拆解複雜需求,有條不紊地設計出高擴展性的大型分散式系統。 * **精通四步驟框架**:從容拆解複雜系統需求 * **分散式架構設計**:搞定高併發與高可用挑戰 * **權衡分析能力**:精準評估資料庫與快取方案 * **條理清晰的表達**:像資深工程師般有效溝通技術

12 sections · 59 lessons

Course outline

擴展基礎

  1. 單機起步
  2. 拆分資料庫
  3. 垂直與水平
  4. 負載平衡
  5. 無狀態設計
  6. 快取與 CDN
  7. 多資料中心

資料庫基礎

  1. SQL 資料庫
  2. NoSQL 類型
  3. 混合儲存
  4. 資料庫複寫
  5. 分片策略

容量估算

  1. 2 的次方
  2. 延遲數字
  3. 可用性等級
  4. QPS 估算
  5. 儲存估算

面試框架

  1. 釐清需求
  2. 高層設計
  3. 深入探討
  4. 收尾總結
  5. 邊想邊說

快取策略

  1. Cache-Aside
  2. 寫入模式
  3. 淘汰策略
  4. 快取失效

流量管理

  1. 為何限流
  2. 令牌桶
  3. 漏桶
  4. 視窗演算法
  5. 分流演算法
  6. L4 與 L7

分散基礎

  1. 一致性雜湊
  2. 虛擬節點
  3. CAP 定理
  4. 一致性模型
  5. 版本衝突

非同步處理

  1. 訊息佇列
  2. 冪等處理
  3. 訊息順序
  4. 死信佇列

ID 生成

  1. UUID 與多主
  2. Snowflake
  3. 時鐘漂移

經典設計

  1. 短網址
  2. 301 與 302
  3. 網路爬蟲
  4. 爬蟲陷阱
  5. 通知系統
  6. 推送與拉取

即時系統

  1. WebSocket
  2. 訊息路由
  3. 上線狀態
  4. 自動完成

媒體系統

  1. 影片轉碼
  2. 自適應串流
  3. 分層儲存
  4. 檔案分塊
  5. 衝突處理

Start learning with Wondering