千家信息网

haproxy调度算法

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,在使用haproxy时在backend段会用到balance以指明用何种方式实现后端服务器的调度。balance:指明调度算法动态算法:权重可以动态调整静态算法:调整权重不会实时生效,只能重启才能生效
千家信息网最后更新 2026年10月31日haproxy调度算法

在使用haproxy时在backend段会用到balance以指明用何种方式实现后端服务器的调度。

balance:指明调度算法

动态算法:权重可以动态调整

静态算法:调整权重不会实时生效,只能重启才能生效

balance的算法有:roundrobin,static-rr,leastconn,source,uri,uri_param,hdr等

roundrobin算法:

轮询,基于权重进行轮询,此算法是动态的,每个后端服务器仅能最多接受4128个连接;

要求后端不能有状态及会话方面的等,只能是静态的页面

当后端有会话等动态信息时,结合cookie使用,效果最佳

static-rr算法:

静态的roundrobin,不支持动态调整;静态算法,每个后端主机支持的数量无上限;

leastconn算法:

根据后端主机的负载数量进行调度,新的连接请求被派发至具有最少连接数目的后端服务器;

在长连接会话的场景中推荐使用此法,不适用http,动态算法

source算法:

将请求的源地址进行hash运算;由后端服务器的权重总数相除后派发至某匹配的服务器,此方法可以让 同一个IP的请求发往同一个服务器;不过,当服务器权重总数发生变化时,如某服务器宕机或添加了 新的服务器,许多客户端的请求可能会被派发至与此前请求不同的服务器;常用于负载均衡无cookie 功能的基于TCP的协议;其默认为静态,不过也可以使用hash-type修改此特性;

hash-type:

map-based:取模法(除模取余法);(静态的,默认的)

consistent:一致性哈希法;(动态的,使后时需要指定:hash-type consistent)

uri算法:

对URI的左半部分("问号"标记之前的部分)或整个URI进行hash运算,并由服务器的总权重相除后派 发至某匹配的服务器;这可以使得对同一个URI的请求总是被派发至某特定的服务器,除非服务器的权重总数发生了变化;此算法常用于代理缓存或反病毒代理以提高缓存的命中率

例:http://www.baidu.com/abc/query?item=123 #红色标记的部分是uri部分

hash-type:

map-based:取模法(除模取余法);(静态的,默认的)

consistent:一致性哈希法;(动态的,使后时需要指定:hash-type consistent)

注:用到uri时,当访问过后端某个页面后,后面所有此页面的请求都发至此服务器

当未访问过后端某个页面时,采用roundrobin算法,随机挑选一个响应,并且随后所有的此页面的请求都发至此主机,这种算法,当后端缓存时非常有效果!!!!

roundrobin算法结合cookie的用法:

cookie的作用是基本浏览器实现session sticky;

cookie的使用方法:cookie [rewrite|insert|prefix] [indirect] [nocache]

[rewrite|insert|prefix]:添加cookie的方式

rewrite:把原有的cookie替换

insert:在原有的cookie后中插入 #此种方式最为常用

prefix:在原有的cookie前插入

cookie常使用的方式:

cookie SERVERID insert indirect nocache

注:

a.SERVERID,是自己随便指定的,在下面的例子中就是SERVERID=websrv1,SERVERID=websrv2;insert:表示插入原有cookie后边

b.不根据源IP进行绑定,根据不同客户端的进行绑定,这种方式我感觉比source要好,因为source是把同一IP的发往同一后端服务器;根据不同客户端绑定,可以实现同一个公网IP的用户,请求发送到不同的后端

c.roundrobin算法,结合cookie这种方式可以进行尝试;这种方式弥补了roundrobin不保持会话的缺点

用法实例:

balance roundrobin

cookie SERVERID insert indirect

server web1 192.168.0.100 check weight 1 cookie websrv1

server web2 192.168.0.101 check weight 3 cookie websrv2

注:websrv1:是web1专有的cookie标识符,在客户端浏览器的cookie中可以看到

websrv2:是web2专有的cookie标识符,在客户端浏览器的cookie中可以看到

最常用的算法为:

roundrobin

source

uri

算法 服务器 服务 动态 方式 权重 静态 客户 页面 不同 调度 主机 客户端 总数 浏览器 缓存 部分 浏览 调整 一致 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 精品咖啡豆 西安纸贵互联网科技有限公司 极限挑战互联网科技 善班互联网科技有限公司 新浪科技互联网 互联网科技有限公司 翻译 佩信高科技互联网 广西拼得多互联网科技有限公司 哈尔滨秒房互联网科技有限公司 小米互联网科技园设置 移动互联网科技股 青岛科技大学互联网大赛研究生 移动互联网年度科技创新 区块链结合互联网科技 银行科技岗属于互联网吗 杭州披云加互联网科技有限公司 唐山双旺合互联网科技产业园 互联网的黑科技实验室 银川新华互联网科技学校招聘 知域互联网科技有限公司官网 手冲咖啡和咖啡机区别 南京欣网互联网络科技有限公司 互联网络科技有限公司 善班互联网科技有限公司 江苏南京365互联网科技 内蒙古九一互联网科技 中国互联网公司排名锤子科技 伍佰万互联网科技怎么赚钱 浙南科技城互联网大厦招聘 好易买互联网科技
0