Haproxy常见的负载均衡调度算法及应用场景

本文详细介绍了Haproxy的负载均衡调度算法,包括静态算法如static-rr和first,动态算法如roundrobin和leastconn,以及其他算法如source、uri、url_param和rdp-cookie。同时,文章探讨了四层和七层负载均衡的特点,并比较了Haproxy与LVS、Nginx的差异。
摘要由CSDN通过智能技术生成

Haproxy常见的负载均衡调度算法及应用场景

HAproxy通过固定参数balance指明对后端服务器的调度算法,该参数可以配置在listen或backend选项中

HAproxy的调度算法分为静态和动态算法,但是有些算法可以根据参数在静态和动态算法中相互转换

#官方文档 https://cbonte.github.io/haproxy-dconv/2.0/configuration.html#4

balance <algorithm> [ <arguments> ]

在这里插入图片描述

1 haproxy 静态调度算法

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

服务器动态权重调整:

#socat是linux下的一个多功能的网络工具
主要特点:就是在两个数据流之间建立通道,且支持众多协议和链接方式。如:IP/UDP/IPV6/Socket文件等
# [root@haproxy ~]# echo "help" | socat stdio /var/lib/haproxy/haproxy.sock

# [root@haproxy ~]# echo "show info" | socat stdio /var/lib/haproxy/haproxy.sock 
1.1 static-rr

static-rr :静态加权轮询;
静态算法,不支持权重的运行时调整及慢启动机制;权重在服务器运行时改变了也不生效,除非重启服务器,而重启会导致此前所有连接断开,然后才重新调度的;但后端主机无数量上限;当服务器掉线时,健康状态检测又恢复上线时,立即加入服务器列表中取,且立即调度大量连接请求至此服务器,没有慢启动功能;而roundrobin则会慢慢调度请求至服务器

基于权重轮询调度,不支持权重的运行时调整及后端服务器慢启动,其后端主机数量没有限制

listen webapps
    bind 192.168.66.7:80
    mode tcp
    log global
    balance static-rr
   # hash-type consistent
    server web1 172.20.21.17:80  weight 2 check inter 3000 fall 2 rise 5
    server web2 172.20.21.27:80 check inter 3000 fall 2 rise 5

1.2 first

first: 根据服务器在列表中的位置,自上而下进行调度;前面的服务器连接数达到上限时,才将新请求调度至下一个服务器;这种算法好处在于可省服务器;要保证单台服务器支撑多个连接时没有问题,性能还支撑一个没有什么区别时会很有用;每一个后端主机要定义最大并发连接数上限;在定义最大连接数时可以定义在三个位置:全局的最大并发连接数上限、每个frontend或listen的最大并发连接数上限、后端主机最大并发连接数上限;

listen webapps
    bind 192.168.66.7:80
    #mode tcp
    #log global
    balance fir
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值