《后端服务的水平扩展策略与负载均衡实现》

37 阅读1分钟

当系统请求量超过单机极限时,水平扩展是最直接的解决方案。它依赖负载均衡策略,让多台节点共同承担流量。

1. 垂直扩展 vs 水平扩展

  • 垂直扩展:提升单机硬件配置(CPU、内存)。简单但成本高,存在上限。
  • 水平扩展:增加节点数量,分摊负载。可无限扩展,但架构复杂。

2. 负载均衡算法

  1. 轮询(Round Robin) :顺序分发请求,简单通用。
  2. 加权轮询:按节点性能分配权重。
  3. 最少连接数:优先将请求发往当前连接少的节点。
  4. 哈希一致性:同一用户或会话始终落到同一节点,适合状态依赖业务。
  5. 随机算法:适合节点数量频繁变化的场景。

3. 常见负载均衡实现

  • Nginx / HAProxy:应用层负载均衡(L7)。
  • LVS / IPVS:网络层负载均衡(L4),性能高。
  • Kubernetes Service / Ingress:容器化环境的统一负载入口。
  • 应用层自实现:微服务框架内部实现客户端负载均衡(Ribbon、Feign、gRPC)。

4. 会话保持与状态同步

  • 无状态服务可以任意分配请求。

  • 有状态服务需解决 Session 共享,可通过:

    • Redis 存储 Session。
    • Token 机制携带用户状态。
    • Sticky Session(会话粘性)。

5. 实践经验

  • 节点健康检查必不可少。
  • 优雅下线机制保证不丢请求。
  • 指标监控:QPS、RT、Error Rate 需要实时监测。

结论:水平扩展是后端性能的“终极手段”。合理的负载均衡策略决定系统能否真正做到高可用与高并发。