负载均衡 (Load Balancing)是一种将网络流量或计算任务智能分发 到多个服务器/资源的机制,以提高系统的性能、可用性和可靠性
核心目标:
-
提高性能 - 避免单点过载
-
提高可用性 - 故障转移
-
提高可扩展性 - 水平扩展
-
提高资源利用率 - 充分利用所有服务器
负载均衡算法
1. 常见算法对比
| 算法 | 描述 | 适用场景 | 代码示例 |
|---|---|---|---|
| 轮询 | 依次分配 | 服务器性能相近 | 平均分配 |
| 加权轮询 | 性能好的多分配 | 服务器性能不同 | 权重配置 |
| 最少连接 | 连接数最少优先 | 长连接场景 | 动态选择 |
| 加权最少连接 | 加权+最少连接 | 综合考虑 | 复杂场景 |
| 源地址哈希 | 相同IP到相同服务器 | 会话保持 | Session粘滞 |
| URL哈希 | 相同URL到相同服务器 | 缓存优化 | 缓存命中 |
| 随机 | 随机选择 | 简单场景 | 快速分配 |