代理服务器-LVS的3种模式与调度算法

news2025/7/27 17:59:15

作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

图片

我们上一章介绍了Web服务器,其中以Nginx为主,本章我们来讲解几个代理软件:Squid,Haproxy,LVS,FRP(内网穿透)。

上一小节我们介绍了LVS的概念和部署,本小节来讲解LVS的工作模式和调度算法。本小节的内容都是理论知识,在很多地方其实都能搜索到大致相似的内容。

一、LVS 的 3 种工作模式

1. NAT 模式(Network Address Translation)

    客户端请求:客户端发送请求到 VIP(Virtual IP),Director 接收请求后,修改目标 IP 为 Real Server 的 IP(DNAT),转发请求。

    服务器响应:Real Server 处理请求后,将响应返回给 Director,Director 修改源 IP 为 VIP(SNAT),返回给客户端。

    Real Server 的网关必须指向 Director 的 DIP(Director IP)。

    Director 需开启 IP 转发(net.ipv4.ip_forward=1)。

    2. DR 模式(Direct Routing)

    客户端请求:Director 接收请求后,仅修改目标 MAC 地址为 Real Server 的 MAC,直接转发数据包。

    服务器响应:Real Server 处理请求后,直接通过自己的网络接口(不经过 Director)返回响应给客户端。

    Director 和 Real Server 必须在同一物理网络(同一广播域)。

    Real Server 需配置 VIP 在 lo 接口,并抑制 ARP 响应。

    3. TUN 模式(IP Tunneling)

    客户端请求:Director 将请求封装在 IP 隧道(如 IPIP、GRE)中,发送给 Real Server。

    服务器响应:Real Server 解封装请求后,直接响应客户端(不经过 Director)。

    Real Server 需支持 IP 隧道协议。

    Real Server 需配置 VIP 在隧道接口(如 tun0)。

    二、LVS 的 10 种调度算法

    下面的调度算法实际上和我们前面讲的Nginx服务器差不多,只是他们工作的网络层不一样。

    1. 轮询调度(Round Robin, rr)

    描述:依次将请求分配给每个后端服务器,循环进行。

    适用场景:当所有服务器的处理能力大致相同时,适合使用此算法。

    特点:简单、公平,但不考虑服务器当前负载情况。

    2. 加权轮询调度(Weighted Round Robin, wrr)

    描述:基于服务器权重进行轮询调度。权重越大,分配到的请求越多。

    适用场景:服务器性能差异较大时,可以通过设置不同权重来优化资源利用。

    特点:在轮询的基础上增加了对服务器处理能力的考量。

    3. 最少连接调度(Least Connections, lc)

    描述:将请求分配给当前连接数最少的服务器。

    适用场景:适用于请求处理时间较长或服务器负载不稳定的情况。

    特点:有助于平衡服务器之间的负载,特别是当请求处理时间变化较大时。

    4. 加权最少连接调度(Weighted Least Connections, wlc)

    描述:结合了最少连接和服务器权重两个因素进行调度。计算公式为:(current connections / weight),值最小的服务器被选中。

    适用场景:当服务器性能差异较大且需要更精确地控制负载分布时。

    特点:相比 lc 更加灵活,能更好地适应不同性能的服务器集群。

    5. 基于局部性的最少连接调度(Locality-Based Least Connections, lblc)

    描述:针对源地址进行调度,尝试将来自同一客户端的请求分配给同一个服务器,并优先选择连接数较少的服务器。

    适用场景:适用于会话保持需求较高的应用,如 Web 应用程序。

    特点:提高缓存命中率,减少跨服务器的数据传输。

    6. 基于局部性的最少连接复用调度(Locality-Based Least Connections with Replication, lblcr)

    描述:类似于 lblc,但在找不到合适的本地服务器时,会选择一个远程服务器并将其加入到本地服务器列表中。

    适用场景:适合于高可用性和高扩展性的应用场景。

    特点:增强了 lblc 的灵活性,能够更好地处理动态变化的流量模式。

    7. 目标地址哈希调度(Destination Hashing, dh)

    描述:根据目标地址(通常是客户端的 IP 地址)进行哈希运算,结果决定分配给哪个服务器。

    适用场景:适用于需要会话保持的应用,确保相同客户端的请求总是被发送到同一台服务器。

    特点:提供了较好的会话一致性,但可能导致负载不平衡。

    8. 源地址哈希调度(Source Hashing, sh)

    描述:根据源地址(通常是客户端的 IP 地址)进行哈希运算,结果决定分配给哪个服务器。

    适用场景:与 dh 类似,适用于需要会话保持的应用。

    特点:确保相同客户端的请求始终被发送到同一台服务器,但同样可能导致负载不平衡。

    9. 最短预期延迟调度(Shortest Expected Delay, sed)

    描述:选择 (当前连接数 + 1) / 权重 最小的服务器,目的是最小化新连接的预期延迟。

    适用场景:适用于希望快速响应新请求的场景。

    特点:相比 wlc 更注重新连接的延迟,而非平均负载。

    10. 从不排队调度(Never Queue, nq)

    描述:如果有一台服务器空闲,则直接选择该服务器;如果没有空闲服务器,则采用加权最少连接调度。

    适用场景:适用于希望尽可能避免队列等待的情况。

    特点:保证至少一台服务器上的即时响应,其他情况下则依赖于 wlc 算法。

    本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2406426.html

    如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

    相关文章

    解决MybatisPlus使用Druid1.2.11连接池查询PG数据库报Merge sql error的一种办法

    目录 前言 一、问题重现 1、环境说明 2、重现步骤 3、错误信息 二、关于LATERAL 1、Lateral作用场景 2、在四至场景中使用 三、问题解决之道 1、源码追踪 2、关闭sql合并 3、改写处理SQL 四、总结 前言 在博客:【写在创作纪念日】基于SpringBoot和PostG…

    使用VMware克隆功能快速搭建集群

    自己搭建的虚拟机,后续不管是学习java还是大数据,都需要集群,java需要分布式的微服务,大数据Hadoop的计算集群,如果从头开始搭建虚拟机会比较费时费力,这里分享一下如何使用克隆功能快速搭建一个集群 先把…

    篇章一 论坛系统——前置知识

    目录 1.软件开发 1.1 软件的生命周期 1.2 面向对象 1.3 CS、BS架构 1.CS架构​编辑 2.BS架构 1.4 软件需求 1.需求分类 2.需求获取 1.5 需求分析 1. 工作内容 1.6 面向对象分析 1.OOA的任务 2.统一建模语言UML 3. 用例模型 3.1 用例图的元素 3.2 建立用例模型 …

    Qt/C++学习系列之列表使用记录

    Qt/C学习系列之列表使用记录 前言列表的初始化界面初始化设置名称获取简单设置 单元格存储总结 前言 列表的使用主要基于QTableWidget控件,同步使用QTableWidgetItem进行单元格的设置,最后可以使用QAxObject进行单元格的数据读出将数据进行存储。接下来…

    基于django+vue的健身房管理系统-vue

    开发语言:Python框架:djangoPython版本:python3.8数据库:mysql 5.7数据库工具:Navicat12开发软件:PyCharm 系统展示 会员信息管理 员工信息管理 会员卡类型管理 健身项目管理 会员卡管理 摘要 健身房管理…

    Yolo11改进策略:Block改进|FCM,特征互补映射模块|AAAI 2025|即插即用

    1 论文信息 FBRT-YOLO(Faster and Better for Real-Time Aerial Image Detection)是由北京理工大学团队提出的专用于航拍图像实时目标检测的创新框架,发表于AAAI 2025。论文针对航拍场景中小目标检测的核心难题展开研究,重点解决…

    简单聊下阿里云DNS劫持事件

    阿里云域名被DNS劫持事件 事件总结 根据ICANN规则,域名注册商(Verisign)认定aliyuncs.com域名下的部分网站被用于非法活动(如传播恶意软件);顶级域名DNS服务器将aliyuncs.com域名的DNS记录统一解析到shado…

    循环语句之while

    While语句包括一个循环条件和一段代码块&#xff0c;只要条件为真&#xff0c;就不断 循环执行代码块。 1 2 3 while (条件) { 语句 ; } var i 0; while (i < 100) {console.log(i 当前为&#xff1a; i); i i 1; } 下面的例子是一个无限循环&#xff0c;因…

    机器学习复习3--模型评估

    误差与过拟合 我们将学习器对样本的实际预测结果与样本的真实值之间的差异称为&#xff1a;误差&#xff08;error&#xff09;。 误差定义&#xff1a; ①在训练集上的误差称为训练误差&#xff08;training error&#xff09;或经验误差&#xff08;empirical error&#x…

    联邦学习带宽资源分配

    带宽资源分配是指在网络中如何合理分配有限的带宽资源&#xff0c;以满足各个通信任务和用户的需求&#xff0c;尤其是在多用户共享带宽的情况下&#xff0c;如何确保各个设备或用户的通信需求得到高效且公平的满足。带宽是网络中的一个重要资源&#xff0c;通常指的是单位时间…

    今日行情明日机会——20250609

    上证指数放量上涨&#xff0c;接近3400点&#xff0c;个股涨多跌少。 深证放量上涨&#xff0c;但有个小上影线&#xff0c;相对上证走势更弱。 2025年6月9日涨停股主要行业方向分析&#xff08;基于最新图片数据&#xff09; 1. 医药&#xff08;11家涨停&#xff09; 代表标…

    GC1808:高性能音频ADC的卓越之选

    在音频处理领域&#xff0c;高质量的音频模数转换器&#xff08;ADC&#xff09;是实现精准音频数字化的关键。GC1808&#xff0c;一款96kHz、24bit立体声音频ADC&#xff0c;以其卓越的性能和高性价比脱颖而出&#xff0c;成为众多音频设备制造商的理想选择。 GC1808集成了64倍…

    生产管理系统开发:专业软件开发公司的实践与思考

    生产管理系统开发的关键点 在当前制造业智能化升级的转型背景下&#xff0c;生产管理系统开发正逐步成为企业优化生产流程的重要技术手段。不同行业、不同规模的企业在推进生产管理数字化转型过程中&#xff0c;面临的挑战存在显著差异。本文结合具体实践案例&#xff0c;分析…

    VASP软件在第一性原理计算中的应用-测试GO

    VASP软件在第一性原理计算中的应用 VASP是由维也纳大学Hafner小组开发的一款功能强大的第一性原理计算软件&#xff0c;广泛应用于材料科学、凝聚态物理、化学和纳米技术等领域。 VASP的核心功能与应用 1. 电子结构计算 VASP最突出的功能是进行高精度的电子结构计算&#xff…

    Centos 7 服务器部署多网站

    一、准备工作 安装 Apache bash sudo yum install httpd -y sudo systemctl start httpd sudo systemctl enable httpd创建网站目录 假设部署 2 个网站&#xff0c;目录结构如下&#xff1a; bash sudo mkdir -p /var/www/site1/html sudo mkdir -p /var/www/site2/html添加测试…

    从数据报表到决策大脑:AI重构电商决策链条

    在传统电商运营中&#xff0c;决策链条往往止步于“数据报表层”&#xff1a;BI工具整合历史数据&#xff0c;生成滞后一周甚至更久的销售分析&#xff0c;运营团队凭经验预判需求。当爆款突然断货、促销库存积压时&#xff0c;企业才惊觉标准化BI的决策时差正成为增长瓶颈。 一…

    (12)-Fiddler抓包-Fiddler设置IOS手机抓包

    1.简介 Fiddler不但能截获各种浏览器发出的 HTTP 请求&#xff0c;也可以截获各种智能手机发出的HTTP/ HTTPS 请求。 Fiddler 能捕获Android 和 Windows Phone 等设备发出的 HTTP/HTTPS 请求。同理也可以截获iOS设备发出的请求&#xff0c;比如 iPhone、iPad 和 MacBook 等苹…

    第2课 SiC MOSFET与 Si IGBT 静态特性对比

    2.1 输出特性对比 2.2 转移特性对比 2.1 输出特性对比 器件的输出特性描述了当温度和栅源电压(栅射电压)为某一具体数值时,漏极电流(集电极电流

    MCP和Function Calling

    MCP MCP&#xff08;Model Context Protocol&#xff0c;模型上下文协议&#xff09; &#xff0c;2024年11月底&#xff0c;由 Anthropic 推出的一种开放标准&#xff0c;旨在统一大模型与外部数据源和工具之间的通信协议。MCP 的主要目的在于解决当前 AI 模型因数据孤岛限制而…

    解密鸿蒙系统的隐私护城河:从权限动态管控到生物数据加密的全链路防护

    摘要 本文以健康管理应用为例&#xff0c;展示鸿蒙系统如何通过细粒度权限控制、动态权限授予、数据隔离和加密存储四大核心机制&#xff0c;实现复杂场景下的用户隐私保护。我们将通过完整的权限请求流程和敏感数据处理代码&#xff0c;演示鸿蒙系统如何平衡功能需求与隐私安…