1.简介
动态负载均衡算法会根据后端服务器的实时状态(如连接数、响应时间、负载情况等)动态调整请求分发策略,而不是依赖固定的权重或顺序。它能自动感知服务器性能变化,优先将请求分配给负载更低、响应更快的节点,从而实现更优的资源利用和服务稳定性。常见的动态算法包括最少连接数(leastconn)、最短响应时间、加权响应时间等,适用于后端负载波动较大、需要自适应调度的场景
常见的动态算法:
- roundrobin:基于权重的轮询调度,支持动态调整权重和慢启动,是默认算法。
- **leastconn(最少连接数)**将新请求分配给当前活跃连接数最少的后端服务器,适合处理耗时较长、连接时间差异大的场景。
2.roundrobin算法
基于权重的轮询动态调度算法,可以使用socat动态调整权重。
HAProxy的roundrobin轮询模式不完全等于LVS的RR轮训模式,区别在于
- HAProxy中的roundrobin⽀持慢启动,新加的服务器会逐渐增加转发数;
- HAProxy每个后端backend中最多⽀持4095个real server;
- HAProxy⽀持对real server权重动态调整
进入haproxy配置文件编写命令

设定算法种类(balance roundrobin),保存退出,重启服务

查看权重修改前的效果:
动态权重更新

检验效果:

3. leastconn算法
进入haproxy配置文件编写命令,设定算法种类(balance leastconn),保存退出,重启服务

在新shell中测试效果:

4.总结
在权重不同的情况下:

roundrobin:严格按照 2:1 的权重比例,以平滑轮询的方式分配请求,表现为可预测的交替模式。
leastconn:在考虑权重的同时,实时根据 "有效负载" 动态决策。当服务器处理速度或连接释放速度有细微差异时,就会打破简单的交替模式,将请求更多地导向当前更空闲的服务器