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 <name> [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

时间: 2024-11-05 21:48:26

haproxy调度算法的相关文章

haproxy 调度算法

haproxy调度算法有以下几种: 一.roundrobin,表示简单的轮询. 二.static-rr,表示根据权重. 三.leastconn,表示最少连接者先处理. 四.source,表示根据请求源IP. 五.uri,表示根据请求的URI: 六.url_param,表示根据请求的URl参数'balance url_param' requires an URL parameter name 七.hdr(name),表示根据HTTP请求头来锁定每一次HTTP请求: 八.rdp-cookie(nam

haproxy调度算法详解一

HAProxy调度算法 HAProxy通过固定参数balance指明对后端服务器的调度算法,该参数可以配置在listen或backend选项中.HAProxy的调度算法分为静态和动态调度算法,但是有些算法可以根据参数在静态和动态算法中相互转换. haproxy基于socat动态调整权重 socat是linux下的一个多功能网络工具,socat的主要特点是在两个数据流之间建立通道,且支持众多协议和链接方式.如IP.TCP.UDP.IPV6.socket文件等. 使用echo把命令打印出来,通过管道

HAProxy基本配置、调度算法与tcp、http、heath模式配置示例

一.HAProxy安装 1.HAProxy简单介绍 HAProxy虽然名字前有HA,但它并不是一款高可用软件,而是一款用于实现负载均衡的软件,可实现四层与七层的负载均衡. 2.yum安装HAProxy HAProxy已经包含在yum的base中,版本为1.15,可以直接yum安装 ~]# yum install -y haproxy HAProxy的配置文件路径为:/etc/haproxy/haproxy.cfg 主程序路径为:/usr/sbin/haproxy 3.HAProxy配置 HAPr

HAProxy的调度算法

HAProxy的调度算法 HAProxy调度算法分为静态调度算法和动态调度算法.静态算法是按照事先定义好的调度规则轮询公平调度,不关心后端服务器的当前负载.连接数和响应速度等,并且无法实时修改权重,只能重启后生效.静态调度算法有:static-rr,first动态算法是根据后端服务器状态进行调度适当调整,比如优先调度至当前负载较低的服务器,并且权重可以在haproxy运行时调整,无需重启服务动态调度算法有:roundrobin,leastconn,source,uri,url_param,hdr

HAProxy杂记(1)

HAProxy haproxy基础 1.安装haproxy [[email protected] ~]# yum -y install haproxy [[email protected] ~]# yum -y install haproxy 查看haproxy生成的文件 : [[email protected] ~]# rpm -ql haproxy 备份配置文件: [[email protected] haproxy]# cp haproxy.cfg{,.back} [[email prot

Haproxy结合Nginx实现Web负载均衡群集

简介 Haproxy是一个使用C语言编写的自由及开放源代码软件,其提供高可用性.负载均衡,以及基于TCP和HTTP的应用程序代理.Haproxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理.Haproxy运行在当前的硬件上,完全可以支持数以万计的并发连接.并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上. Haproxy调度算法原理 一.RR(Round Robin).轮询调度 理解举例:有三个节点A.B.C,

使用Haproxy搭建Web群集的方法

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

使用Haproxy搭建Web群集(理论结合实战,全程可跟做!)

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

Haproxy搭建web群集——(实践!)

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