Appearance
负载均衡算法:轮询、最少连接与会话保持
修订于 2026-10-12。本文不包含虚构的高峰故障或固定性能提升比例。
负载均衡把请求分发给多个后端。算法只是其中一环:健康检查、连接复用、超时、重试和后端容量往往同样影响结果。下面以 NGINX 文档中的 HTTP 上游方法说明。
| 方法 | 决策依据 | 适用时要留意 |
|---|---|---|
| 轮询 | 依次分发请求,可配置权重 | 请求耗时差别大时,分发数量均匀不代表负载均匀 |
| 最少连接 | 选择当前活动连接较少的后端 | 长连接与请求耗时会影响连接数的解释 |
| IP 哈希 | 依据客户端 IP 选择后端 | NAT 后多个用户可能共用 IP;后端变化也会影响映射 |
“最少连接一定最快”或“IP 哈希保证永不切换”都过于绝对。还要考虑异常后端被移除、权重配置和客户端流量分布。应用最好把会话状态放在可共享的存储中,减少对粘性会话的依赖。
上线前的检查
- 明确后端是无状态服务还是需要会话绑定,评估请求耗时分布。
- 设置健康检查与超时,确认异常后端从流量中退出。
- 对重试请求限制次数和总截止时间;写操作要考虑幂等。
- 压测并观察各后端请求数、活动连接、错误率和延迟。
- 演练新增、下线和故障恢复,检查流量是否平稳转移。