負載均衡器把進來的流量攤平到一組伺服器上。它是水平擴展的入口,也是 Web 層高可用的關鍵——單台掛了,流量自動繞過去。
🧠 Core Ideas
TIP
使用者只看到 LB 的公開 IP,看不到後面有幾台伺服器。LB 一邊分流、一邊盯著每台的健康狀態,把故障節點自動摘掉——擴容與故障轉移都變成「動池子」而非改客戶端。
- 客戶端連 LB 的公開 IP;LB 用私有 IP 跟後端溝通,後端不對公網暴露(更安全)。
- 加一台 LB + 第二台 Web 伺服器,就同時解掉了「沒有故障轉移」與「單機被打爆」兩個問題。
⚖️ Tradeoffs
分流策略與健康檢查
- 分流策略:輪詢 (Round-Robin)、隨機、依 CPU / 記憶體使用率加權等。
- LB 持續追蹤後端狀態;當某台無回應、報錯或錯誤率升高時,自動停止把流量導過去。
- 故障後補一台健康的伺服器進池,LB 會自動開始送請求給它——擴容對客戶端透明。
放在哪一層
為了同時發揮擴展性與冗餘,可以在每一層都做負載均衡:
- 使用者 ↔ Web 伺服器
- Web 伺服器 ↔ 內部平台層(應用 / 快取伺服器)
- 平台層 ↔ 資料庫
不是只有最前面那一層才需要 LB。
三種實作 — 從哪個開始
- 智慧客戶端 (Smart Client):把分流邏輯內建進客戶端,維護一個主機池。小規模好用,長大後要獨立出來。
- 硬體 LB(如 Citrix NetScaler):效能最高但極貴、設定不易;多半只用在流量進入基礎設施的第一個接觸點。
- 軟體 LB(如 HAProxy):介於兩者的混合方案,會自動做健康檢查、動態增減後端。
建議:多數系統從軟體 LB 開始,有需要再往智慧客戶端或硬體方案遷移。
🔑 Takeaways
- LB 的價值=分散流量 + 提高可用性 + 自動隔離故障節點,是水平擴展的入口。
- 公開 IP 對外、私有 IP 對內;擴容與故障轉移都變成「動伺服器池」。
- 可以在每一層都放 LB;實作先用軟體 LB(HAProxy),長大再談硬體或智慧客戶端。
No notes yet — jot your takeaways or Q&A here.