Files
nexus/Cloud DevOps/负载均衡快速笔记.md
2026-09-12 17:23:01 +08:00

3.0 KiB
Raw Blame History

定义

在多个服务器间分散请求,提高系统性能和可用性。

核心作用

  • 高可用:单点故障不中断服务
  • 高性能:分散负载,提高吞吐量
  • 可扩展:增加服务器应对增长

实现层级

第4层(传输层):基于IP/端口,性能最高,功能简单。工具:LVS、HAProxy
第7层(应用层):基于HTTP/内容,功能强大,性能较低。工具:Nginx、HAProxy

常见算法

算法 原理 适用
轮询 依次分配给每个服务器 无状态短连接
加权轮询 按性能分配权重 性能差异大
最少连接 分配给连接数最少的服务器 长连接应用
IP哈希 相同IP总路由到同一服务器 会话保持
一致性哈希 哈希环实现,服务器变化影响小 分布式缓存
随机 随机选择服务器 简单场景
响应时间 选择响应最快的服务器 延迟敏感

主流产品

硬件:F5 Big-IP、Citrix NetScaler(功能全面,价格贵)
开源:Nginx(最流行)、HAProxy(功能强大)、LVS(性能最高)
云服务:AWS ELB、阿里云SLB、腾讯云CLB、Azure LB

应用场景

  1. Web应用:多个服务器部署相同应用
  2. 数据库:主库写,多个从库读
  3. 微服务:服务发现和分配
  4. API网关:统一入口分配到不同服务
  5. CDN:地理位置分散

关键特性

  • 健康检查:定期检测服务器状态,自动隔离故障
  • 会话保持:确保用户请求路由到同一服务器
  • 连接复用:HTTP Keep-Alive,减少连接开销
  • 限流:保护后端服务器
  • 超时管理:设置连接和请求超时时间

部署模式

单点:一个LB + 多个服务器(简单但有单点风险)
主备:主LB + 备LB + VIP自动转移(高可用)
多活:多个LB并行工作 + DNS分散(性能最优)
分层:DNS级(地域)→ 网络级(区域)→ 应用级(服务器)

选择指南

条件 方案
小规模(<1K QPS) Nginx基础配置
中等规模(1K-10K QPS) Nginx/HAProxy
大规模(>10K QPS) LVS/硬件/云服务
复杂业务逻辑 Nginx高级/HAProxy/硬件
云环境 用云厂商服务
成本优先 开源方案(Nginx/HAProxy)

常见问题解决

问题 解决方案
LB单点故障 主备部署或多活部署 + VIP
会话不一致 会话粘性或分布式会话存储(Redis)
调试困难 分布式追踪(Jaeger/Zipkin) + 日志聚合
服务器增删影响大 用一致性哈希

优缺点

优势:高可用、高吞吐、易扩展、故障转移、灵活部署
局限:成本增加、系统复杂、可能增加延迟、会话管理复杂

快速判断使用场景

  • 单个服务器无法承载 → 需要负载均衡
  • 需要故障自动转移 → 需要负载均衡
  • 频繁发布部署 → 需要负载均衡
  • 想水平扩展系统 → 需要负载均衡
  • 对性能无特殊要求的小应用 → 暂可不用