HAProxy Balance 调度算法详解(包括 hash type)

1、实验环境及基础配置请参考如下博客

HAProxy 简单示例及 HAProxy_Log 的简单配置

1.1 拓扑如下

在这里插入图片描述

2、HAProxy 调度算法介绍

2.1 官方文档相关说明

点此链接,查看 HAProxy 官方文档关于 Balance 的介绍

### yum base repo 安装的版本为 1.5 ###
[root@Tang ~]# rpm -q haproxy
haproxy-1.5.18-9.el7.x86_64

在这里插入图片描述

2.2 算法 1 — roundrobin

2.2.1 roundrobin 介绍

动态算法:支持权重的运行时调整,支持慢启动;每个后端中最多支持4095个server。

2.2.2 roundrobin 示例

2.2.2.1 HAProxy 配置
[root@Tang ~]# ipinfo
enp1s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.16.141.252  netmask 255.255.255.0  broadcast 172.16.141.255
[root@Tang ~]# vim /etc/haproxy/haproxy.cfg 
frontend web
    bind *:80
    default_backend     websrvs

backend websrvs
    balance roundrobin
    server srv1 172.16.141.209:80 weight 1 check
    server srv2 172.16.141.209:8080 weight 1 check
[root@Tang ~]# systemctl restart haproxy
2.2.2.2 用户进行访问(按照权重进行轮询访问)
[root@Tang-2 ~]# ipinfo
enp1s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.16.141.253  netmask 255.255.255.0  broadcast 172.16.141.255
[root@Tang-2 ~]# for i in {
   1..12}; do curl http://172.16.141.252; done
<h1>This is tang's website!</h1>
<h1>This is neo's website!</h1>
<h1>This is tang's website!</h1>
<h1>This is neo's website!</h1>
<h1>This is tang's website!</h1>
<h1>This is neo's website!</h1>
<h1>This is tang's website!</h1>
<h1>This is neo's website!</h1>
<h1>This is tang's website!</h1>
<h1>This is neo's website!</h1>
<h1>This is tang's website!</h1>
<h1>This is neo's website!</h1>

2.3 算法 2 — static-rr

2.3.1 static-rr 介绍

  • 静态算法:不支持权重的运行时调整及慢启动;后端主机数量无上限。

  • 每台服务器根据各自的权重依次使用。这个算法与roundrobin类似,只是它是静态的,这意味着动态地更改服务器的权重不会有任何影响。另一方面,它对服务器的数量没有设计限制,当一个服务器启动时,它总是在重新计算完整的映射后立即被重新引入集群。它运行时使用的CPU也稍微少一些(大约-1%)。

2.3.2 static-rr 示例

2.3.2.1 HAProxy 配置
[root@Tang ~
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
HAProxy提供了多种负载均衡算法。其中一些常见的算法包括: 1. 轮询(roundrobin):按照事先定义好的规则轮流将请求分发给后端服务器,实现公平调度。 2. 最少连接(leastconn):优先将请求分发给连接数最少的后端服务器。 3. 源IP(source):根据请求的源IP地址将请求分发给相应的后端服务器。 4. 请求URI(uri):根据请求的URI将请求分发给相应的后端服务器。 5. URL参数(url_param):根据请求的URL参数将请求分发给相应的后端服务器。 6. HTTP请求头(hdr):根据HTTP请求头来锁定每一次HTTP请求并将其分发给相应的后端服务器。 7. Cookie(rdp-cookie):根据cookie来锁定并哈希每一次TCP请求,将其分发给相应的后端服务器。 这些算法可以在HAProxy的配置文件中的负载均衡配置部分进行设置,以实现不同的负载均衡策略。 此外,HAProxy调度算法包括静态调度算法、动态调度算法和其他调度算法。静态调度算法是按照事先定义好的规则进行调度,不考虑后端服务器的当前负载情况;动态调度算法基于后端服务器的状态进行调度适当调整,可以根据当前负载情况对后端服务器进行优先调度;其他调度算法可以同时作为静态调度算法和动态调度算法。 要在HAProxy中配置负载均衡算法,可以使用配置文件中的"balance"关键字和相应的调度算法名称进行设置。例如,可以通过设置"balance roundrobin"来使用轮询算法。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Haproxy 负载均衡算法介绍:](https://blog.csdn.net/weixin_33901641/article/details/92894368)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [负载均衡 HAProxy 调度算法详细说明](https://blog.csdn.net/qq_42606357/article/details/118229672)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值