负载均衡是大型架构核心,下面我详解负载均衡策略@mikechen
1. Round Robin:轮询
轮询是最经典的方式。

假设有3台服务器:
Request 1 → Server1
Request 2 → Server2
Request 3 → Server3
Request 4 → Server1
Request 5 → Server2
它的优点是简单、均衡。
如果后端服务器配置相近,而且请求处理时间差不多,轮询通常就是最合适的方案。
2. Weight:权重
如果服务器性能不同,可以设置不同权重:

upstream backend {
server 192.168.1.10 weight=5;
server 192.168.1.11 weight=3;
server 192.168.1.12 weight=2;
}
可以理解为:
Server1:50%
Server2:30%
Server3:20%
官方文档说明,weight 会参与负载均衡决策;在轮询场景中,可以让性能更强的服务器承担更多请求。
3. IP Hash
IP Hash根据客户端IP选择后端服务器。

Client IP
↓
Hash
↓
Server
这样,同一个客户端通常会被分配到同一个后端节点。
它适合需要一定Session粘性的场景。
不过现代架构更推荐把Session放到Redis等共享存储中,而不是过度依赖IP Hash。
4. Least Connections:最少连接
如果不同请求的处理时间差异很大,单纯轮询可能并不均衡。

例如:
Server1:100个连接
Server2:20个连接
Server3:10个连接
新请求更适合进入Server3。
Nginx的 least_conn 会将请求优先分配给当前活跃连接较少的服务器。
官方文档也明确指出,这种方式尤其适合部分请求处理时间更长的场景。
陈睿|mikechen
10年+大厂架构经验,资深技术专家,就职于阿里等一线大厂。