集中式負載均衡 vs. 分布式負載均衡
負載均衡(Load Balancing)是任何可伸縮系統的“交通警察”。
集中式負載均衡(Centralized LB)與分布式負載均衡(Distributed LB)代表了兩種截然不同的“指揮哲學”:
? 前者“單點決策、統一調度”,簡單、成熟、易觀測;
? 后者“多點自治、協同決策”,彈性、低延遲、高可用。
二者在微服務、云原生、邊緣計算、Service Mesh 等場景中并存,互為補充。
一、知識點框架速覽
維度 | 集中式負載均衡 | 分布式負載均衡 |
---|---|---|
決策位置 | 獨立 LB 節點(硬件或軟件) | 每個客戶端或服務實例 |
控制面 | 單點或主備 | 去中心化、最終一致 |
數據面 | 流量必經 LB | 流量直連目標實例 |
典型實現 | LVS、Nginx、HAProxy、ELB、F5 | Envoy、Finagle、Linkerd、客戶端 SDK、一致性哈希 |
適用規模 | 中小規模、南北向流量 | 大規模、東西向流量 |
故障域 | LB 單點 | 局部節點失效影響小 |
運維復雜度 | 低 | 高(需治理、觀測、版本管理) |
二、集中式負載均衡詳解
2.1 架構與組件
- VIP(Virtual IP):對外唯一入口,DNS 指向 VIP。
- 調度算法:RR、WRR、LC、WLC、IP-Hash、一致性哈希、最少連接等。
- 健康檢查:TCP/HTTP/GRPC 探活,失敗即摘除。
- 會話保持:Source IP Hash、Cookie Insert、Sticky Table。
- 高可用:Keepalived + VRRP、BGP Anycast、雙活 LB 集群。
2.2 優勢
- 簡單:部署、監控、排障都圍繞一個或一組 LB。
- 功能豐富:SSL 終端、WAF、限流、緩存、壓縮、灰度發布。
- 透明:對后端服務零侵入,語言棧無關。
2.3 局限
- 單點瓶頸:帶寬、PPS、SSL 握手數、連接表大小。
- 延遲疊加:流量多一跳,RTT 增加 0.2~1 ms。
- 爆炸半徑:LB 故障導致全集群不可用。
- 水平擴展上限:ECMP 最多 8~16 條等價路徑,再多會哈希不均。
三、分布式負載均衡詳解
3.1 架構范式
- 客戶端側負載均衡
每個調用方(Consumer)內置負載均衡邏輯,通過注冊中心(Consul/Eureka/Nacos)實時感知 Provider 列表。 - 邊車代理(Sidecar)
每個 Pod/VM 部署 Envoy,攔截進出流量,由控制面(Istiod)下發路由規則。 - 無代理直連
gRPC 內置負載均衡策略(pick_first、round_robin、weighted_target),直接連目標 IP。
3.2 決策流程
- 負載感知:基于實時延遲、錯誤率、QPS、權重、實例標簽。
- 故障轉移:熔斷、重試、離群摘除(Outlier Detection)。
- 版本路由:金絲雀、A/B、按 Header 染色。
3.3 優勢
- 零單點:任何節點故障只影響局部。
- 低延遲:流量直發,無額外 hop。
- 彈性擴展:節點數線性增加,吞吐線性提升。
- 細粒度治理:按方法級、按用戶級、按地域級路由。
3.4 挑戰
- 治理復雜:需要統一 SDK、版本管理、灰度升級。
- 觀測困難:調用鏈分散,需分布式追蹤(OpenTelemetry)。
- 網絡放大:注冊中心推送風暴、心跳風暴。
- 多語言:每種語言都要實現或引入 Sidecar。
四、對比與選型
比較維度 | 集中式 | 分布式 |
---|---|---|
部署成本 | 低(買幾臺 LB 即可) | 高(Sidecar、注冊中心、控制面) |
運維心智 | 傳統網絡運維即可 | 需 DevOps + SRE + 網絡 |
性能上限 | 受限于 LB 規格 | 隨節點數線性增長 |
功能擴展 | 依賴 LB 廠商 | 可自定義 Filter、Lua/Wasm |
故障域 | 全局 | 局部 |
適用場景 | 入口網關、南北向、SSL 卸載 | 微服務東西向、Service Mesh、邊緣節點 |
五、混合模式實踐
現代云原生平臺往往“分層負載均衡”:
? L4 集中式:Anycast + ECMP 做全局流量入口,解決 BGP 收斂、DDoS 清洗。
? L7 分布式:Envoy Sidecar 做服務間調用,實現金絲雀、熔斷、限流。
? 邊緣自治:邊緣節點內置輕量級 LB(如 Traefik、Nginx Unit),在斷網場景下繼續服務本地用戶。
六、總結
結論 | 說明 |
---|---|
沒有銀彈 | 集中式與分布式不是“誰取代誰”,而是“誰更適合哪一層”。 |
分層治理 | 入口用集中式,內部用分布式,邊緣用自治式。 |
可觀測優先 | 無論哪種模式,統一 Metrics、Tracing、Logging 是落地前提。 |
架構師洞見
? 集中式負載均衡像“機場塔臺”,簡單可控,但容量有限;分布式負載均衡像“每架飛機自帶 TCAS”,復雜卻彈性無限。
? 未來趨勢是“控制面集中、數據面分布”:用統一控制面下發策略,用分布式數據面執行決策,兼顧治理與性能。