haproxy调度算法

HAProxy的调度算法 前言 HAProxy作为一个负载均衡器,自然会有许多对后端服务器的调度算法来供我们使用,那么接下来我们就来对这些调度算法进行一一介绍 主体 HAProxy可以通过修改balance字段的值从而修改其调度算法,balance字段应用于”default”,”frontend”,”backend”字段中 balance < algorithm> [ < argument... 阅读详情

调度算法

balance: 指明对后端服务器的调度算法,配置在listen或backend

1.静态

• 静态算法:按照事先定义好的规则轮询公平调度,不关心后端服务器的当前负载、链接数和相应速度等,且无法实时修改权重,只能重启后生效。

• static-rr:基于权重的轮询调度,不支持权重的运行时调整及后端服务器慢启动,其后端主机数量没有限制
• first:根据服务器在列表中的位置,自上而下进行调度,但是其只会当第一台服务器的连接数达到上限,新请求才会分配给下一台服务,因此会忽略服务器的权重设置。

2.动态

动态算法:基于后端服务器 状态进行调度适当调整,比如优先调度至当前负载较低的服务器,且权重可以在haproxy运行时动态调整无需重启。

需要打开sock文件
先创建/var/lib/haproxy文件夹,修改配置,重启服务

stats socket /var/lib/haproxy/haproxy.sock mode 600 level admin

• roundrobin:基于权重的轮询动态调度算法,支持权重的运行时调整,不等于lvs 的rr,支持慢启动即新加的服务器会逐渐增加转发数,每个后端backend中最多支持4095个server,此为默认调度算法,server 权重设置 weight
一旦重启,就会失效

• leastconn: 加权的最少连接的动态,支持权重的运行时调整和慢启动,即当前后端服务器连接最少的优先调度,比较适合长连接的场景使用,比如MySQL等场景。mode为tcp 四层

3.调度算法-source

source:源地址hash,基于用户源地址hash并将请求转发到后端服务器,默认为静态即取模方式,但是可以通过hash-type支持的选项更改,后续同一个源地址请求将被转发至同一个后端web服务器,比较适用于session保持/缓存业务等场景。

hash-type选项

• map-based:取模法,基于服务器权重的hash数组取模,该hash是静态的即不支持在线调整权重,不支持慢启动,其对后端服务器调度均衡,缺点是当服务器的总权重发生变化时,即有服务器上线或下线,都会因权重发生变化而导致调度结果整体改变, hash(o)mod n

• consistent:一致性哈希,该hash是动态的,支持在线调整权重,支持慢启动,优点在于当服务器的总权重发生变化时,对调度结果影响是局部的,不会引起大的变动。

listen web_prot_http_nodes
 bind 192.168.7.101:80
 mode http
 
 balance source
 hash-type consistent
 log global
 option forwardfor
 
 server 192.168.7.101 192.168.7.101:8080 check inter 3000 fall 3 rise 5
 server 192.168.7.102 192.168.7.102:8080 check inter 3000 fall 3 rise 5

一致性hash
在这里插入图片描述
在这里插入图片描述

4.调度算法-uri

uri:基于对用户请求的uri做hash并将请求转发到后端指定服务器
• map-based:取模法
• consistent:一致性哈希
uri 统一资源标识符,是一个用于标识某一互联网资源名称的字符串

listen web_prot_http_nodes
	 bind 192.168.7.101:80
	 mode http #不支持tcp,会切换到tcp的roundrobin负载模式
	 
	 balance uri
	 hash-type consistent
	 log global
	 option forwardfor
	 
	 server 192.168.7.101 192.168.7.101:8080 check inter 3000 fall 3 rise 5
	 server 192.168.7.102 192.168.7.102:8080 check inter 3000 fall 3 rise 5

5.调度算法url_param

url_param:
对用户请求的url中的部分中的参数name作hash计算,并由服务器总权重相除以后派发至某挑出的服务器;通常用于追踪用户,以确保来自同一个用户的请求始终发往同一个Backend Server

假设url = http://www.qcq.com/foo/bar/index.php?nice=1
则:
host = “www.qcq.com”
url_param = ‘nice=1’

listen web_prot_http_nodes
	 bind 192.168.7.101:80
	 mode http #不支持tcp,会切换到tcp的roundrobin负载模式
	 
	 balance url_param name #基于参数name做hash
	 hash-type consistent
	 log global
	 option forwardfor
	 server 192.168.7.101 192.168.7.101:8080 check inter 3000 fall 3 rise 5
	 server 192.168.7.102 192.168.7.102:8080 check inter 3000 fall 3 rise 5

在这里插入图片描述

6.调度算法-hdr

也就是相同的浏览器,会调度到相同的后端服务器上
hdr():针对用户每个http头部(header)请求中的指定信息做hash,此处由指定的http首部将会被取出并做hash计算,然后由服务器总权重相除以后派发至某挑出的服务器,假如无有效的值,则会被轮询调度

hdr( Cookie、 User-Agent、host )


 listen web_prot_http_nodes
	 bind 192.168.7.101:80
	 mode http
	 
	 balance hdr(User-Agent)
	 hash-type consistent
	 
	 log global
	 option forwardfor
	 server 192.168.7.101 192.168.7.101:8080 check inter 3000 fall 3 rise 5
	 server 192.168.7.102 192.168.7.102:8080 check inter 3000 fall 3 rise 5

7.调度算法- rdp-cookie

rdp-cookie对远程桌面的负载,使用cookie保持会话
rdp-cookie()
示例:

listen RDP
	 bind 192.168.7.101:3389
	 balance rdp-cookie
	 mode tcp
	 server rdp0 172.18.139.20:3389 check fall 3 rise 5 inter 2000 weight 1
	 server rdp1 172.18.139.21:3389 check fall 3 rise 5 inter 2000 weight 1



 基于iptables实现目标地址转换:
 iptables -t nat -A PREROUTING -d 192.168.7.101 -p tcp --dport 3389 -j DNAT --to-destination 
172.18.139.20:3389
 iptables -t nat -A POSTROUTING -s 192.168.0.0/21 -j SNAT --to-source 192.168.7.101

算法总结

在这里插入图片描述

四层
roundrobin ,做过session共享用的最多的调度算法(默认)
leastconn,用于后端非服务器Mysql
statir-rr 静态熏晕,等于roundrobin
first很少用
source 后端服务器没有做session共享,还要实现会话保持
rdp-cookie 用户Windows远程桌面
七层
uri和url_param一般用于CDN厂商(缓存场景)
hdr-基于请求头部指定的信息做调度

北京大学MuMo多模态肿瘤分类模型复现与迁移学习 本项目复现了北京大学MuMo多模态肿瘤分类模型,并针对特定医学影像数据集进行迁移学习。MuMo模型通过整合CT、MRI、PET等多模态医学影像数据,显著提升了肿瘤分类准确性。项目内容包括环境配置(Python 3.8+、PyTorch 1.9+)、数据预处理(DICOM/NIfTI格式处理、强度归一化)、多模态数据集类实现,以及训练验证测试集划分。关键特点是采用MONAI医学影像处理库,实现三维医学影像的标准化预处理流程,并支持多种模态数据的并行加载与联合训练,为后续模型复现和迁移学习奠定基础。 阅读详情

相关推荐

别再只改config了!YOLO/RT-DETR多通道输入实战:数据集结构、多卡训练与参数优先级避坑指南

本文详细解析了YOLO/RT-DETR模型在多通道输入(如8通道多光谱图像)中的实战应用,涵盖数据集结构优化、数据加载器改造、模型参数调优及多卡训练配置。针对常见的多通道输入报错问题,提供了系统的解决方案和性能优化技巧,帮助开发者高效实现非标准数据格式的适配与训练。

weixin_30955617的博客 397

HAProxy各种调度算法介绍

HAProxy 调度算法介绍一.静态调度算法1.1 static-rr1.2 first二.动态调度算法2.1 roundrobin2.2 leastconn三.其它算法3.1 source3.2 uri3.3 url_param3.4 hdr3.5 rdp-cookie3.6 random四.各算法使用场景4.1 总结4.2 各算法使用场景五.四层与七层负载5.1 四层负载5.2 七层负载六.I...

Blog of Stevenux 2296

Android 面试题 Handler篇

1.Handler的实现原理。

ViewHandKownHealth的博客 955

nginx---一致性hash反向代理以及upstream的六种调度算法

nginx-fair(第三方):按后端服务器的响应时间来分配请求,响应时间短的优先分配。   upstream web_pool {             server 172.23.136.148;             server 172.23.136.149;             fair;            }说明:表示两个服务器的负载以那个响应速度快的优先承担upstr...

yuhui666666的博客 2220

Vivado FIR Complier_IP核使用方法

文章依靠该IP核对应手册PG149写的,因为笔者需求简单,没有深入挖掘功能,可以自行下载学习。

2302_80180551的博客 3987

基于PCIE8311+FPGA+TMS320F28335 PCIE应用项目开发板PROTEL99设计硬件(原理图+PCB)文件

基于PCIE8311+FPGA+TMS320F28335 PCIE X1应用项目开发板PROTEL99设计硬件(原理图+PCB)文件,Protel 99se 设计的项目工程文件,包括原理图及PCB印制板图,可用Protel或 Altium Designer(AD)软件打开或修改,都已经制板在实际项目中使用,可作为你产品设计的参考。

GJZGRB的博客 577

Haproxy调度算法

Haproxy调度算法 常见的Web集群调度器 目前常见的Web集群调度器分为软件和硬件,软件通常使用开源的LVS、 Haproxy、 Nginx,硬件一般使用比较多的是F5,也有很多人使用国内的一些产品,如梭子鱼、绿盟等 LVS虽然在企业应用中抗负载能力很强,但存在不足 LVS不支持正则处理,不能实现动静分离 对于大型网站,LVS的实施配置复杂,维护成本相对较高 Haproxy是一款可提供高可用性、负载均衡、及基于TCP和HTTP应用的代理的软件 特别适用于负载特别大的Web站点 运行在当前的硬件上

longtiandao的博客 520

Delta机器人:运动学正反解分析

Delta机器人:运动学正反解分析 一、Delta机构简介 Delta机构是并联机构中的一种典型机构,起原始结构如图1所示。Delta机构由R.Clavel 博士在 1985年发明,是现在并联机器人中使用最多的一种,具备了并联机构所特有的优点,负载能力强、效率高、末端执行器精度高、运动惯性小,可以高速稳定运动等。因此在机器人领域获得了越来越广泛的应用。以实现高速、精准、高效的运动。           &n

花洛兮灬 3万+

HAProxy调度算法

HAProxy调度算法  静态算法  static-rr  first  动态算法  roundrobin  leastconn  random  source  map-base取模法  hash对象  示意图  一致性hash配置示例  uri 取模法配置示例 url_param hdr取模法配置示例 测试访问 rdp-cookie取模法配置示例 rdp-cookie基于iptables实现RDP协议转发 算法总结 各算法使用场景

Starry__Sky222的博客 1031

Agent 操作系统:未来的 Harness 平台

在大模型技术爆发的当下,自主智能体(Agent)已经成为AI原生应用的核心载体,但当前Agent开发面临着碎片化严重、运维难度高、规模化落地难三大核心痛点,就像1970年代没有通用操作系统的裸机编程时代,开发者需要重复造轮子解决底层基础设施问题。本文将深度解析Agent操作系统(Agent OS)作为AI原生时代的底层基础设施的核心定位,以及下一代Harness平台如何将Agent OS与成熟的DevOps、CI/CD、可观测性、成本管理能力深度融合,成为AI原生应用全生命周期管理的统一平台。

软件工程实践的博客 278

《R 语言卡方检验全解析:手写代码实现与详细步骤》卡方检验

卡方检验(Chi-Square Test)是一种常用的统计方法,主要用于检验分类变量之间的独立性或拟合优度。在医学、社会科学等领域中,卡方检验常用于分析两个或多个分类变量之间的关系。以下是卡方检验的全面解析,包括实现代码和手写公式。χ2∑Ei​Oi​−Ei​2​Oi​Ei​dfr−1c−1rcdfk−1k如果卡方统计量大于临界值,或 p 值小于显著性水平(如 0.05),则拒绝原假设。

Mrrunsen的博客 685

haproxy的调度算法

haproxy的调度算法 简介 HAProxy通过固定参数balance指明对后端服务器的调度算法,该参数可以配置在listen或backend选项中。 HAProxy的调度算法分为静态和动态调度算法,但是有些算法可以根据参数在静态和动态算法中相互转换。 https://cbonte.github.io/haproxy-dconv/2.0/configuration.html#4 #官方文档 ...

wdirdo的博客 946

使用C# HslCommunication库实现三菱PLC通信(含完整代码示例)

在工业自动化开发中,上位机与PLC的通信是关键环节。HslCommunication库是一个开源的.NET工业通信库,支持三菱、西门子、欧姆龙等多个品牌PLC的通信协议。本文将演示如何通过库实现C#程序与三菱PLC的通信,并提供完整的代码示例。

StevenChen的博客 2288

LVS、NGINX、HAPROXY的调度算法

维度LVSNGINXHAProxy层次四层(网络层)四层/七层(应用层)四层/七层性能最高,内核级较高高,支持四层和七层调度算法丰富度中等,侧重基础算法中等,部分算法需第三方模块最丰富,支持多种高级算法会话保持源地址哈希等IP哈希等多种哈希算法,支持参数哈希动态负载感知支持动态反馈等支持最少连接、fair(需模块)支持least load、动态权重调整等适用场景高并发、四层负载均衡七层应用负载均衡,如Web服务复杂场景,同时支持四层和七层,功能全面。

2503_91100205的博客 847

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

HAProxy(三)调度算法

文章目录HAProxy调度算法一、静态算法1. static-rr2. first二、动态算法:1. roundrobin2. leastconn三、混合算法1. source2. uri3. url_param:4. hdr5. rdp-cookie6. random4层与7层的区别IP透传:四层IP透传七层IP透传: HAProxy调度算法 HAProxy通过固定参数balance指明对后端...

Not Found 404 1642

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

HAProxy 调度算法介绍

算法支持的协议静态/动态static-rrtcp/http静态firsttcp/http静态roundrobintcp/http动态leastconntcp/http动态randomtcp/http动态sourcetcp/http取决于 hash_type 是否 consistenturittp取决于 hash_type 是否 consistenturl_paramttp取决于 hash_type 是否 consistenthdrhttp。

wang11876的博客 959

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Haproxy balance调度算法

HAProxy的调度算法有如下8种: roundrobin,表示简单的轮询 static-rr,表示根据权重, leastconn,表示最少连接者先处理, source,表示根据请求源IP, uri,表示根据请求的URI; url_param,表示根据请求的URl参数’balance url_param’ requires an URL parameter name hdr(name),表示根据...

bjgaocp的博客 4533

HAProxy调度算法2

2HAProxy调度算法 HAProxy通过固定的参数"blance"指明对后端服务器的调度算法,该参数可以配置在listen或者backend中。 HAProxy的调度算法分为"静态调度算法"和"动态调度算法",有些算法根据参数在静态和动态算法中相互转换。 官方文档:https://cbonte.github.io/haproxy-dconv/2.0/configuration.html#4 2...

Abbey_linux的博客 434

【HAProxy06】企业级反向代理HAProxy调度算法之其他算法

静态#动态#以下静态和动态取决于hash_type是否consistent#各种算法使用场景first#使用较少static-rrroundrobinrandomleastconnsourcehdr#做了session共享的 web 集群#数据库#基于客户端公网 IP 的会话保持Uri--------------->http #缓存服务器,CDN服务商,蓝汛、百度、阿里云、腾讯url_param--------->http #可以实现session保持。

运维&陈同学的博客 1394

Haproxy调度算法 - 其他算法介绍与使用

其它算法即可作为静态算法,又可以通过选项成为动态算法#静态#动态#以下静态和动态取决于hash_type是否consistent。

qq_36972930的博客 806

2、HAproxy调度算法

HAProxy的调度算法可以大致分为以下几大类: 静态算法:这类算法的调度策略在配置时就已经确定,并且不会随着负载的变化而改变。常见的静态算法有: Round Robin(轮询) Least Connections(最少连接数) Static-Weight(静态权重) Source IP Hash(源IP哈希) URI H...

weixin_37540600的博客 868

【HAProxy05】企业级反向代理HAProxy调度算法之静态算法与动态算法

HAProxy通过固定参数balance 指明对后端服务器的调度算法,该参数可以配置在listen或backend选 项中。HAProxy的调度算法分为静态和动态调度算法,但是有些算法可以根据不同的参数实现静态和动态算法 相互转换。

运维&陈同学的博客 1529
上一篇: 负载均衡haproxy介绍,安装, 配置(各种参数配置)
下一篇: 四层负载 和 七层的区别,ip透传,cookie持久连接(haproxy),
(─__─)
博客等级 码龄7年 1万+粉丝 255原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值