当前位置: 首页 > ds >正文

集中式负载均衡 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.xdnf.cn/news/18543.html

相关文章:

  • 银河麒麟V10防火墙下访问NFS共享:端口开放全攻略
  • WindowsAPI|每天了解几个winAPI接口之网络配置相关文档Iphlpapi.h详细分析七
  • uniapp实现分页,效果如图
  • C++——C++重点知识点复习2(详细复习模板,继承)
  • 大模型部署
  • 基于随机森林的红酒分类与特征重要性分析
  • DeepSeek辅助编写的将xlsx格式文件中sheet1.xml按需分别保留或去掉标签的程序
  • 服务器间大文件迁移
  • 领域专用AI模型训练指南:医疗、法律、金融三大垂直领域微调效果对比
  • 电商项目_微服务_架构
  • 2025年国内AI大模型现状浅析
  • Shell 脚本条件测试
  • 一款更适合 SpringBoot 的API文档新选择(Spring Boot 应用 API 文档)
  • Rancher 管理的 K8S 集群中部署常见应用(MySQL、Redis、RabbitMQ)并支持扩缩容的操作
  • SpringBoot4发布!新特性解析
  • 2025.8.21总结
  • 【Bug】CentOS 7 使用vim命令报错vim: command not found
  • 37、需求预测与库存优化 (快消品) - /供应链管理组件/fmcg-inventory-optimization
  • AP状态管理中提到的两种“业务逻辑”
  • Java实现一个简单的LRU缓存对象
  • 50 C++ STL模板库-算法库 algorithm
  • python的校园研招网系统
  • RHCA10NUMA
  • Pytorch框架学习
  • Git 新手完全指南(一):从零开始掌握版本控制
  • 59. 螺旋矩阵 II|从“左闭右开”的圈层模拟入手(附图解与 C++ 实现)
  • 在 Linux 和 Docker 中部署 MinIO 对象存储
  • 使用Spring Retry组件优雅地实现重试
  • 【Python】利用heapq 模块实现一个按优先级排序的队列
  • 数字化图书管理系统设计实践(java)