2、HAproxy调度算法

这篇具有很好参考价值的文章主要介绍了2、HAproxy调度算法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

HAProxy的调度算法可以大致分为以下几大类: 静态算法:这类算法的调度策略在配置时就已经确定,并且不会随着负载的变化而改变。常见的静态算法有: Round Robin(轮询) Least Connections(最少连接数) Static-Weight(静态权重) Source IP Hash(源IP哈希) URI Hash(URI哈希) URL Parameter(URL参数) 动态算法:这类算法的调度策略会根据后端服务器的状态和负载情况动态调整。它们能够根据服务器的性能自动分配负载。常见的动态算法有: Dynamic-Weight(动态权重) Least Response(最小响应时间) 随机算法:这类算法随机选择一个后端服务器来处理请求,是一种简单的负载均衡策略。 Random(随机)

静态算法

静态算法是指负载均衡中的调度算法在配置时就已经确定,并且在运行过程中不会随着服务器状态或负载的变化而改变。这些算法将请求均匀地分发到后端服务器,无论服务器的状态如何,分发的比例都是固定的。 以下是一些常见的静态算法: Round Robin(轮询):按照后端服务器列表的顺序依次将请求分发给每个服务器,然后再从头开始。每个服务器依次接收请求,实现负载均衡。适用于后端服务器性能相近的情况。 Static-Weight(静态权重):手动设置每个后端服务器的权重值。根据权重值来决定每个服务器获得请求的比例。可以根据服务器性能、硬件配置等设置不同的权重,以实现负载均衡。 Source IP Hash(源IP哈希):根据客户端的IP地址计算哈希值,并将请求分发到对应的服务器。这样,相同IP的请求总是被分发到同一个后端服务器上。 URI Hash(URI哈希):根据请求的URI(URL)计算哈希值,并将请求分发到对应的服务器。用于确保特定URI的请求总是发送到同一个后端服务器。 URL Parameter(URL参数):根据请求的URL参数来选择后端服务器。例如,可以根据某个特定的URL参数值来分发请求。

static-rr

Static-Weight(静态权重)

backend web_servers
    mode http
    balance static-rr
    server web1 192.168.1.100:80 weight 5 check
    server web2 192.168.1.101:80 weight 10 check
round robin
backend web_servers
    mode http
    balance roundrobin
    server web1 192.168.1.100:80 check
    server web2 192.168.1.101:80 check
Source IP Hash(源IP哈希):
backend web_servers
    mode http
    balance source
    server web1 192.168.1.100:80 check
    server web2 192.168.1.101:80 check

动态算法

动态算法是指在负载均衡过程中根据服务器状态和负载情况动态调整的算法。在 HAProxy 中,有一种动态算法叫做Least Response(最小响应时间)。

Least Response

算法会选择响应时间最短的服务器来处理请求。它会测量后端服务器的响应时间,并将请求分发给响应时间最短的服务器,以确保请求能够尽快获得响应。这使得负载均衡器可以动态地选择性能最好的服务器来处理请求,从而优化整体性能。

backend web_servers
    mode http
    balance leastresponse
    server web1 192.168.1.100:80 check
    server web2 192.168.1.101:80 check
Least Connections(最少连接数):
backend web_servers
    mode http
    balance leastconn
    server web1 192.168.1.100:80 check
    server web2 192.168.1.101:80 check
URI Hash(URI哈希):
backend web_servers
    mode http
    balance uri
    server web1 192.168.1.100:80 check
    server web2 192.168.1.101:80 check
URL Parameter(URL参数):
backend web_servers
    mode http
    balance url_param sid
    server web1 192.168.1.100:80 check
    server web2 192.168.1.101:80 check

随机算法

hdr取模法

您可以使用 hdr() 或 req.hdr() 来指定负载均衡算法,并将请求头中的特定值用于负载均衡。下面是一个基于 hdr() 的取模分发的示例配置:

backend web_servers
    mode http
    balance hdr(User-Agent)
    server web1 192.168.1.100:80 check
    server web2 192.168.1.101:80 check
    server web3 192.168.1.102:80 check
rdp-cookie

rdp-cookie 取模法是用于实现 RDP(Remote Desktop Protocol)会话保持的一种负载均衡算法。当客户端使用 RDP 连接到后端服务器时,服务器会返回一个 RDP-cookie 给客户端,用于标识客户端的会话。HAProxy 可以使用这个 RDP-cookie 来实现会话保持,将同一个客户端的请求始终路由到同一个后端服务器上,从而保持会话的连续性。

frontend rdp_frontend
    bind *:3389
    mode tcp
    default_backend rdp_servers

backend rdp_servers
    mode tcp
    balance rdp-cookie
    option tcp-check
    server rdp1 192.168.1.101:3389 check
    server rdp2 192.168.1.102:3389 check

算法总结

static-rr #做了session共享的web集群
roundrobin
random
leastconn #数据库
source #基于客户端公网IP的会话保持
Uri--------------->http #缓存服务器,CDN服务商,蓝汛、百度、阿里云、腾讯
url_param--------->http
hdr #基于客户端请求报文头部做下一步处理

IP透传

4层透传

send-proxy 是HAProxy提供的一种特性,允许HAProxy在传输层(Layer 4)通过PROXY协议将客户端的真实IP地址和端口信息传递给后端服务器,实现4层的IP透传。 当启用了 send-proxy 特性后,客户端连接到HAProxy时,HAProxy会在建立连接后,通过发送一条特殊的PROXY协议报文给后端服务器,携带了客户端的真实IP地址和端口信息。后端服务器收到这个报文后,就能够获得客户端的真实IP地址,而不是HAProxy的IP地址。 这个特性对于需要在后端服务器上获取客户端真实IP地址的情况非常有用,例如用于记录日志或进行访问控制等。 要在HAProxy中启用 send-proxy 特性,需要在后端服务器的配置中添加 send-proxy 选项。同时,在后端服务器上需要开启对PROXY协议报文的识别和处理

backend app_servers
    mode tcp
    balance roundrobin
    server web1 192.168.1.101:80 send-proxy check
    server web2 192.168.1.102:80 send-proxy check
    server web3 192.168.1.103:80 send-proxy check

请注意,启用 send-proxy 特性后,后端服务器需要支持并能正确处理PROXY协议报文。如果后端服务器不支持PROXY协议,可能会导致连接失败或其他问题。确保后端服务器能够正确处理PROXY协议报文,才可以安全地启用该特性。

7层透传

2、HAproxy调度算法,算法

haproxy 配置:
defaults
option forwardfor
或者:
option forwardfor header X-Forwarded-xxx #自定义传递IP参数,后端web服务器写X-Forwarded-xxx,如
果写option forwardfor则后端服务器web格式为X-Forwarded-For

2、HAproxy调度算法,算法文章来源地址https://www.toymoban.com/news/detail-614472.html

到了这里,关于2、HAproxy调度算法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【调度算法】并行机调度问题遗传算法

    m台相同的机器,n个工件,每个工件有1道工序,可按照任意的工序为每个工件分配一台机器进行加工 工件 A B C D E F G H I 工件编号 0 1 2 3 4 5 6 7 8 加工时间 4 7 6 5 8 3 5 5 10 到达时间 3 2 4 5 3 2 1 8 6 交货期 10 15 30 24 14 13 20 18 10 设备数目:3 最小化交货期总延时时间 记机器数为 m ,从

    2024年02月05日
    浏览(54)
  • 操作系统调度算法--高响应比优先调度算法解析

      高响应比优先调度算法(Highest Response Radio Next,HRRN)是一种对CPU中央控制器响应比的分配的算法。HRRN是介于FCFS(先来先服务算法)与SJF(短作业优先算法)之间的折中算法。FCFS算法所考虑的只是作业等待时间,而忽视了作业的运行时间(类似我们在生活中排队买东西)。

    2023年04月18日
    浏览(43)
  • 操作系统有关进程调度算法(含先来先服务,短作业优先,优先级调度算法和时间片轮转调度算法)

    本文采用的进程调度算法有:先来先服务,短作业优先,优先级调度算法和时间片轮转调度算法。 针对这四种算法,我采用的是建立数组结构体,如: 先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。采用FCFS算法,每次从

    2024年02月03日
    浏览(59)
  • 操作系统进程调度算法——先来先服务、时间片轮转、优先级调度算法

    (1)算法内容: 先来先服务调度算法是一种最简单的调度算法,可以应用于高级调度也可以运用于低级调度。高级调度时,FCFS调度算法按照作业进入后备作业队列的先后顺序选择作业进入内存,即先进入后备作业队列的作业被优先选择进入内存,然后为选中的作业创建进程

    2023年04月21日
    浏览(41)
  • 磁盘调度算法之先来先服务(FCFS),最短寻找时间优先(SSTF),扫描算法(SCAN,电梯算法),LOOK调度算法

    寻找时间(寻道时间) Ts:在读/写数据前,将磁头移动到指定磁道所花的时间。 ① 启动磁头臂 是需要时间的。假设耗时为s; ② 移动磁头 也是需要时间的。假设磁头匀速移动,每跨越一个磁道耗时为m,总共需要跨越n条磁道。 则寻道时间 T s = s + m ∗ n Ts =s + m*n T s = s + m ∗

    2024年02月08日
    浏览(45)
  • 【调度算法】快速非支配排序算法

    这段代码实现的是快速非支配排序算法(Fast Non-dominated Sorting Algorithm)。 算法输入和输出: 这个函数的输入是两个列表 values1 和 values2 ,分别表示多目标优化问题中每个解在两个目标函数下的取值。输入的两个列表应该具有相同长度,即每个解在两个目标函数下均有取值。

    2024年02月07日
    浏览(44)
  • 操作系统:实验一:进程调度实验——最高优先数优先的调度算法以及先来先服务算法 源码

    一、实验目的 (1)了解进程实体PCB结构; (2)理解进程不同状态和状态之间的转换过程; (3)掌握优先数的调度算法和先来先服务算法; 二、实验内容与要求 设计一个有 N个进程共行的进程调度程序 四、实验步骤 (1)实验设计 进程调度算法: 采用最高优先数优先的调

    2024年02月06日
    浏览(44)
  • 【进程调度】基于优先级的轮转调度C++实现算法

    在计算机科学领域, 进程调度是操作系统中一个关键的组成部分,它负责协调系统中各个进程的执行顺序,以最大程度地提高系统资源利用率 。在这篇博客中,将深入探讨基于优先级的轮转调度算法,该算法结合了进程的 优先级 和 时间片轮转 的思想,以实现高效的任务执

    2024年01月20日
    浏览(46)
  • 【操作系统】调度算法

    目录 🏫基本概念 🏥先来先服务(FCFS, First Come First Serve) 🏩短作业优先(SJF, Shortest Job First) 🍆细节 ⛪️高响应比优先(HRRN,Highest Response Ratio Next) 🌇时间片轮转(RR,Round-Robin) 🏰时间片大小的影响 🗼优先级调度算法 🌄多级反馈队列调度算法 🌈实例  🗽多级队列调度

    2024年02月08日
    浏览(40)
  • 操作系统——调度算法

    本文的主要内容是调度算法的介绍,包括先来先服务(FCFS)、最短时间优先(SJF)、最高响应比优先(HRRN)、时间片轮转(RR)、优先级调度和多级反馈队列这六种方法,这些调度算法会从其算法思想、算法规则、该方法用于作业调度还是进程调度、进程调度的方式(抢占式和非抢占式

    2023年04月14日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包