Appearance
HAProxy 负载均衡
负载均衡算法
1. roundrobin (轮询)
适用于后端服务器性能相近的场景,默认支持 4096 个后端服务器。
balance roundrobin2. source (源 IP 哈希)
相同来源的请求始终发送到同一后端服务器。
balance source3. leastconn (最少连接)
请求发送到当前连接数最少的服务器,适合长连接场景。
balance leastconn四层 vs 七层负载均衡
四层 (TCP 模式)
frontend tcp_front
bind *:80
mode tcp
default_backend tcp_servers
backend tcp_servers
mode tcp
balance roundrobin
server web1 192.168.1.10:80 check
server web2 192.168.1.11:80 check七层 (HTTP 模式)
frontend http_front
bind *:80
mode http
default_backend http_servers
backend http_servers
mode http
balance roundrobin
server web1 192.168.1.10:80 check inter 2000ms rise 2 fall 3
server web2 192.168.1.11:80 check inter 2000ms rise 2 fall 3健康检查参数
| 参数 | 说明 |
|---|---|
inter 2000ms | 检查间隔 2 秒 |
rise 2 | 连续 2 次成功则认为上线 |
fall 3 | 连续 3 次失败则认为下线 |
slowstart 30s | 新节点逐步增加权重 |
会话保持
基于 Cookie 实现会话保持:
backend web_servers
balance roundrobin
cookie SERVERID insert indirect nocache
server web1 192.168.1.10:80 check cookie s1
server web2 192.168.1.11:80 check cookie s2