haproxy的算法——动态算法

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:在考虑权重的同时,实时根据 "有效负载" 动态决策。当服务器处理速度或连接释放速度有细微差异时,就会打破简单的交替模式,将请求更多地导向当前更空闲的服务器

相关推荐
Old Uncle Tom1 天前
OpenClaw 记忆系统 -- 记忆预加载
java·数据结构·算法·agent
会编程的土豆1 天前
洛谷题单入门1 顺序结构
数据结构·算法·golang
生信碱移1 天前
PACells:这个方法可以鉴定疾病/预后相关的重要细胞亚群,作者提供的代码流程可以学习起来了,甚至兼容转录组与 ATAC 两种数据类型!
人工智能·学习·算法·机器学习·数据挖掘·数据分析·r语言
智者知已应修善业1 天前
【51单片机中的打飞机设计】2023-8-25
c++·经验分享·笔记·算法·51单片机
智者知已应修善业1 天前
【51单片机按键调节占空比3位数码管显示】2023-8-24
c++·经验分享·笔记·算法·51单片机
.5481 天前
## Sorting(排序算法)
python·算法·排序算法
wuweijianlove1 天前
算法的平均复杂度建模与性能回归分析的技术7
算法·数据挖掘·回归
子琦啊1 天前
【算法复习】字符串 | 两个底层直觉,吃透高频题
linux·运维·算法
code_pgf1 天前
Octo 算法详解-开源通用机器人策略模型技术报告
算法·机器人·开源
嘻嘻哈哈樱桃1 天前
牛客经典101题题解集--动态规划
java·数据结构·python·算法·职场和发展·动态规划