集中式負載均衡 vs. 分布式負載均衡

集中式負載均衡 vs. 分布式負載均衡

負載均衡(Load Balancing)是任何可伸縮系統的“交通警察”。
集中式負載均衡(Centralized LB)與分布式負載均衡(Distributed LB)代表了兩種截然不同的“指揮哲學”:
? 前者“單點決策、統一調度”,簡單、成熟、易觀測;
? 后者“多點自治、協同決策”,彈性、低延遲、高可用。
二者在微服務、云原生、邊緣計算、Service Mesh 等場景中并存,互為補充。


一、知識點框架速覽

維度集中式負載均衡分布式負載均衡
決策位置獨立 LB 節點(硬件或軟件)每個客戶端或服務實例
控制面單點或主備去中心化、最終一致
數據面流量必經 LB流量直連目標實例
典型實現LVS、Nginx、HAProxy、ELB、F5Envoy、Finagle、Linkerd、客戶端 SDK、一致性哈希
適用規模中小規模、南北向流量大規模、東西向流量
故障域LB 單點局部節點失效影響小
運維復雜度高(需治理、觀測、版本管理)

二、集中式負載均衡詳解

2.1 架構與組件
Internet
VIP
RS1
RS2
RS3
Health Check
Health Check
Health Check
User
Centralized LB
LVS/Nginx/ELB
Service A-1
Service A-2
Service A-3
  • 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 架構范式
  1. 客戶端側負載均衡
    每個調用方(Consumer)內置負載均衡邏輯,通過注冊中心(Consul/Eureka/Nacos)實時感知 Provider 列表。
  2. 邊車代理(Sidecar)
    每個 Pod/VM 部署 Envoy,攔截進出流量,由控制面(Istiod)下發路由規則。
  3. 無代理直連
    gRPC 內置負載均衡策略(pick_first、round_robin、weighted_target),直接連目標 IP。
3.2 決策流程
ConsumerRegistryProvider-1Provider-2Subscribe service list[P1,P2,P3] + metadataLocal LB algorithmDirect TCP/HTTP callResponseConsumerRegistryProvider-1Provider-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”,復雜卻彈性無限。
? 未來趨勢是“控制面集中、數據面分布”:用統一控制面下發策略,用分布式數據面執行決策,兼顧治理與性能。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/919942.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/919942.shtml
英文地址,請注明出處:http://en.pswp.cn/news/919942.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【機器學習】9 Generalized linear models and the exponential family

本章目錄 9 Generalized linear models and the exponential family 281 9.1 Introduction 281 9.2 The exponential family 281 9.2.1 Definition 282 9.2.2 Examples 282 9.2.3 Log partition function 284 9.2.4 MLE for the exponential family 286 9.2.5 Bayes for the e…

EndNote 2025 Mac 文獻管理工具

原文地址:EndNote 2025 Mac 文獻管理工具 EndNote mac版一款文獻管理工具,支持國際期刊的參考文獻格式有3776種,寫作模板幾百種,涵蓋各個領域的雜志。 EndNote mac不僅僅局限于投稿論文的寫作,對于研究生畢業論文的寫…

openEuler系統中home文件夾下huawei、HwHiAiUser、lost+found 文件夾的區別和作用

在 openEuler 系統的 /home 目錄下出現的 huawei、HwHiAiUser 和 lost+found 文件夾,分別對應不同的功能和用途,具體區別和作用如下: 1. lost+found 文件夾 通用 Linux 系統文件夾:lost+found 是所有 Linux 系統(包括 openEuler)中默認存在的文件夾,并非 openEuler 特有…

Electron 核心 API 全解析:從基礎到實戰場景

Electron 憑借豐富的 API 體系,讓前端開發者能輕松調用系統級能力。本文將系統梳理 Electron 核心 API 的分類、使用場景及實戰示例,幫你快速掌握從窗口管理到進程通信的全場景開發。 一、主進程核心 API(Main Process) 主進程是…

創建線程的方式有哪些?

1. 創建線程的方式有哪些?繼承Thread類實現runnable接口實現Callable接口線程池創建線程(項目中使用方式)2. runnable 和 callable 有什么區別?Runnable接口run方法沒有返回值Callable接口call方法有返回值,需要FutureTask獲取結果Callable接口的call()方法允許拋出異常;而Ru…

More Effective C++ 條款05: 謹慎定義類型轉換函數

More Effective C 條款05:謹慎定義類型轉換函數核心思想:C中的隱式類型轉換雖然方便,但容易導致意外的行為和維護難題。應當通過explicit關鍵字和命名轉換函數等方式嚴格控制類型轉換,優先使用顯式轉換而非隱式轉換。 &#x1f68…

基于springboot的理商管理平臺設計與實現、java/vue/mvc

基于springboot的理商管理平臺設計與實現、java/vue/mvc

Flask藍圖:模塊化開發的利器

藍圖為什么要使用藍圖模塊化組織:將應用分解為可重用的模塊(組件)。每個藍圖封裝了相關的視圖、靜態文件、模板等。按功能劃分:將大型應用按功能模塊劃分(例如:用戶認證、博客、管理后臺)&#…

設計模式詳解

1.創建類型1.1 簡單工廠startuml抽象產品接口 interface Product { Operation(): string } 具體產品A class ConcreteProductA { Operation(): string } 具體產品B class ConcreteProductB { Operation(): string } 工廠類 class Factory { CreateProduct(type: string): Produ…

前端查漏補缺

插槽默認、具名&#xff08;多個插槽&#xff09;、作用域&#xff08;接收子組件數據&#xff09;//具名 <div class"container"><header><slot name"header"></slot></header><main><slot></slot></…

網絡協議UDP、TCP

一、網絡協議 UDPUDP用戶數據報協議&#xff1a;傳輸層網絡編程模型B/S模型&#xff1a;browser/server&#xff08;瀏覽器/服務器&#xff09;客戶端是通用的客戶端&#xff08;瀏覽器&#xff09;一般只做服務器開發客戶端要加載的數據均來自服務器C/S模型&#xff1a;client…

STM32 TIM_SelectInputTrigger()函數

一、函數功能與定位?TIM_SelectInputTrigger()是STM32定時器外設的關鍵配置函數&#xff0c;用于設置從模式定時器的觸發源&#xff08;Trigger Source&#xff09;?。其核心作用是將定時器的內部事件或外部信號映射為觸發信號&#xff08;TRGI&#xff09;&#xff0c;進而控…

Lecture 6 Kernels, Triton 課程筆記

本講座&#xff1a;基準測試/分析 編寫內核 總結 編程模型&#xff08;PyTorch、Triton、PTX&#xff09;與硬件之間的差距 > 性能奧秘 理解擴展的基準測試 用于理解 PyTorch 函數內部結構的分析&#xff08;用內核觸底&#xff09; 看 PTX 匯編&#xff0c;了解 CUDA 內核…

Spring Boot 整合網易163郵箱發送郵件實現找回密碼功能

在開發用戶系統時&#xff0c;發送郵件是一項常見需求&#xff0c;例如用戶忘記密碼時&#xff0c;通過郵箱發送驗證碼來驗證身份并重置密碼。本文將結合 Spring Boot 和 163 郵箱&#xff0c;演示如何實現郵件發送功能。 一、前提條件 普通用戶的 163 郵箱可以在 Spring Boot…

如何在mac玩windows游戲?3個工具推薦,不用換電腦!

Mac電腦雖然很流暢&#xff0c;但它也存在局限性&#xff0c;其中一點游戲玩家應該深有體會&#xff0c;那就是無法直接玩Windows專屬游戲&#xff0c;只能對著琳瑯滿目的游戲望眼欲穿。別急&#xff0c;我有辦法讓你在mac玩windows游戲&#xff0c;下面就來分享我的經驗。一、…

自回歸(Auto-Regressive, AR),自回歸圖像生成過程

根據論文中“**T2I Generation via Next-Token Prediction**”一節&#xff0c;自回歸&#xff08;Auto-Regressive, AR&#xff09;文本到圖像&#xff08;T2I&#xff09;模型的圖像生成過程可分為三個主要步驟&#xff0c;其原理和損失函數如下&#xff1a;---### &#x1f…

在mysql中,modify ,change ,rename to的作用是什么

在 MySQL 中&#xff0c;MODIFY、CHANGE 和 RENAME TO 都是 ALTER TABLE 語句的一部分&#xff0c;用于修改表的結構&#xff0c;但它們的作用和使用場景有所不同。1. MODIFY作用&#xff1a;用于修改表中現有列的定義&#xff0c;但不能修改列名。你可以使用 MODIFY 來更改列的…

【JVM】JVM的內存結構是怎樣的?

JVM的內存結構是Java程序運行時內存管理的核心&#xff0c;不同區域有明確的職責。 一、整體劃分 包括兩大部分&#xff0c;分為線程私有區域(隨線程創建/銷毀&#xff0c;無需垃圾回收)和線程共享區域(所有線程共用&#xff0c;需要垃圾回收管理)。 線程私有區域&#xff1a;程…

青少年軟件編程(python五級)等級考試試卷-客觀題(2023年12月)

更多內容和歷年真題請查看網站&#xff1a;【試卷中心 -----> 電子學會 ----> 機器人技術 ----> 五級】 網站鏈接 青少年軟件編程歷年真題模擬題實時更新 青少年軟件編程&#xff08;python五級&#xff09;等級考試試卷-客觀題&#xff08;2023年12月&#xff0…

網絡編程-創建TCP協議服務器

int socket(int domain, int type, int protocol);頭文件&#xff1a; #include <sys/socket.h>#include <netinet/in.h> #include <netinet/ip.h>int skt_tcpfd;int domain;skt_tcpfdsocket(AF_INET,SOCK_STREAM,0);int bind(int sockfd, const struct soc…