haproxy调度算法
admin
2023-03-23 04:41:00
0

在使用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

相关内容

热门资讯

【第一资讯】“丫丫诗词可以开挂... 您好:丫丫诗词这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9784099】很多玩家在这款游戏...
玩家最新攻略“相约福建麻将有没... 您好:相约福建麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【4282891】很多玩家在这款...
玩家分享攻略“荊州晃晃麻将怎么... 您好:荊州晃晃麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【4282891】很多玩家在这款...
石破茂再批高市:安倍、菅义伟、... 据日本“PRESIDENT Online”网站12月25日报道,高市早苗所谓“台湾有事”相关言论引发...
【第一财经】“乐酷炸/金/花到... 【第一财经】“乐酷炸/金/花到底是不是挂?”(原来真的有挂)您好,乐酷炸/金/花这个游戏其实有挂的,...
玩家攻略科普“超稳牛牛是不是有... 有 亲,根据资深记者爆料超稳牛牛是可以开挂的,确实有挂(咨询软件无需打开...
今日重大消息“天天微友怎么开挂... 家人们!今天小编来为大家解答天天微友透视挂怎么安装这个问题咨询软件客服徽9752949的挂在哪里买很...
重磅消息“新大圣牛牛是不是有挂... 重磅消息“新大圣牛牛是不是有挂?”(外卦神器下载)您好,新大圣牛牛这个游戏其实有挂的,确实是有挂的,...
【第一消息】“约约麻将真的有挂... 【第一消息】“约约麻将真的有挂吗?”(太坑了果然有挂)您好,约约麻将这个游戏其实有挂的,确实是有挂的...
今日重磅消息“欢乐龙城3到底是... 家人们!今天小编来为大家解答欢乐龙城3透视挂怎么安装这个问题咨询软件客服徽9784099的挂在哪里买...