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

相关推荐
ZhengEnCi2 小时前
大模型的分类到底怎么分:从基础模型到推理模型、从通用到专用的完整图谱
算法
取名真是3 小时前
Python 算法知识点从基础到进阶
开发语言·python·算法
罗西的思考3 小时前
【轻量化复刻大模型 / KIMI K3】KDA 模块交互式演示
人工智能·算法·机器学习
nm_zfyjt5 小时前
信息流广告投放优化实践:线索成本评估模型与转化链路重构(家装建材案例)
算法·重构·内蒙古朋友圈广告服务商·内蒙古朋友圈获客
w_zero_one6 小时前
算法--构造
java·数据结构·算法
其实防守也摸鱼7 小时前
信创安全竞赛知识总结与题库
大数据·网络·人工智能·算法·安全·php
小超人诞生日记8 小时前
C++ 智能指针的使用及其原理详解
c++·算法
AiNightVision11 小时前
无人机夜视模块如何选择?——从参数指标到系统集成的完整选型指南
人工智能·算法·计算机视觉·车载系统·无人机·视频·智能硬件
牧羊人.33312 小时前
卷积神经网络之VGG
人工智能·深度学习·神经网络·算法·cnn