linux-sre-handbook

01-负载均衡策略

多层负载均衡

DNS 负载均衡 (GSLB)
    ↓
L4 负载均衡 (LVS / Nginx stream)
    ↓
L7 负载均衡 (Nginx / HAProxy / Envoy)
    ↓
后端服务池

L4 vs L7 负载均衡

特性 L4 L7
工作层 TCP/UDP HTTP/HTTPS
性能
内容路由 不支持 支持 (按 Header/Path/Cookie)
SSL 终止 不支持 支持
会话保持 源 IP 哈希 Cookie/Session
适用 高性能、透明代理 Web 应用、API 网关

算法对比

算法 适用场景 注意
Round Robin 后端能力相同 无法感知后端负载
Least Connections 长连接服务 需准确统计连接数
IP Hash 会话保持 后端增减导致重分布
Weighted 后端配置不均 权重需合理
Random 大流量场景 需配合健康检查

健康检查

upstream backend {
    server 10.0.0.1:8080 max_fails=3 fail_timeout=30s;
    server 10.0.0.2:8080 max_fails=3 fail_timeout=30s;
    keepalive 32;   # 与后端的连接池
}

高可用 LB 本身

LB 自身不能成为单点:

延伸阅读