LVS 负载均衡详解:四层转发原理与三种经典模式全面解析

文章目录

一、四层 vs 七层负载均衡:本质区别

       四层 LVS 的核心特点:

二、LVS 工作原理概述

三、LVS 三种工作模式对比

模式对比总览

1. LVS-NAT 模式(Network Address Translation)

2. LVS-DR 模式(Direct Routing)

3. LVS-TUN 模式(IP Tunneling)

四、LVS 实战建议

五、LVS 与其他方案对比

总结


专注性能与稳定的四层负载均衡解决方案


一、四层 vs 七层负载均衡:本质区别

在负载均衡系统中,根据 工作层次不同,常见分为:

类型工作层协议层次举例特点
四层负载均衡传输层TCP/UDPLVS、IPVS、HAProxy(TCP)性能高、转发快、透明性强
七层负载均衡应用层HTTP/HTTPSNginx、HAProxy(HTTP)、Traefik可识别 URI、Host、Header,策略灵活

       四层 LVS 的核心特点:

  • 工作在 IP + 端口 层面,不解析内容

  • 快速转发,系统资源占用极低

  • 不支持内容规则路由(如按路径转发)


二、LVS 工作原理概述

LVS 使用的是 Linux 内核中的 IPVS 模块,作为一个虚拟服务器:

  • 前端调度器(Director) 接收客户端请求

  • 根据调度算法(如 RR、LC、SH)转发给后端 Real Server

  • 后端服务器直接响应或通过调度器转发

架构图示:

Client ---> LVS(DIP) ---> Real Server(RIP)<--- 响应返回方式视模式而定

三、LVS 三种工作模式对比

模式对比总览

模式请求路径响应路径要求适用场景
NAT 模式客户端 → LVS → RSRS → LVS → 客户端LVS 做双向转发,压力大局域网测试
DR 模式客户端 → LVS → RSRS 直接回客户端RS 与 LVS 必须同一网段生产常用,高性能
TUN 模式客户端 → LVS → RS(隧道)RS 回客户端支持公网,RS 配隧道协议异地服务器场景

1. LVS-NAT 模式(Network Address Translation)

请求响应都经过 LVS,LVS 成为通信瓶颈。

  • DIP:调度器地址

  • RIP:真实服务器地址

  • VIP:虚拟服务地址

流转路径:

Client --> VIP:80 --> LVS(DIP) --> RS(RIP)
Client <-- VIP:80 <-- LVS(DIP) <-- RS(RIP)

优点:

    后端服务器无特殊配置
    架构简单,测试友好

缺点:

      LVS 成为双向瓶颈
     不适合高并发生产环境


2. LVS-DR 模式(Direct Routing)

LVS 只负责请求转发,响应由 RealServer 直接返回客户端。

关键点:

  • RS 与 LVS 处于 同一二层网络

  • 所有 RS 配置 VIP 的 loopback 接口(不响应 ARP)

ip addr add 192.168.1.100 dev lo
arp_ignore = 1
arp_announce = 2

流转路径:

Client --> VIP:80 --> LVS(DIP) --> RS(RIP)
Client <-- VIP:80 <-- RS(RIP)

优点:

      高性能(仅转发请求)
      无数据回流,LVS 压力小

缺点:

 只能在同一局域网部署
RS 需特殊配置,不响应 ARP 抢答


3. LVS-TUN 模式(IP Tunneling)

LVS 通过 IP 隧道将请求封装传递给 RS,适合跨地域部署。

  • LVS 和 RS 可以位于不同网络

  • RS 需支持 IP-in-IP 解封装

配置:

ip tunnel add tunl0 mode ipip remote <DIP> local <RIP>

流转路径:

Client --> VIP:80 --> LVS --> IP隧道 --> RS(RIP)
Client <-- VIP:80 <-- RS(RIP)

优点:

      支持远程异地 RealServer
      响应回客户端无需 LVS

缺点:

      配置复杂(需隧道)
      安全性依赖底层网络环境


四、LVS 实战建议

场景推荐模式原因
测试环境NAT架构简单
同机房大并发DR性能高、部署灵活
异地容灾、公网混合云TUN跨网络部署灵活

负载调度算法:

  • RR(轮询):适用于性能一致服务器

  • LC(最小连接数):适合长连接场景

  • SH(源地址哈希):保持 session 粘性


五、LVS 与其他方案对比

项目LVSNginxHAProxy
工作层四层七层4/7 层
性能极高中高
内容识别
配置复杂度
适用场景TCP 转发,超大并发HTTP 路由综合场景

总结

  • LVS 是一个 轻量高性能的内核级四层负载均衡器,适用于高并发 TCP/UDP 应用场景。

  • 三种模式中,DR 是生产环境最常见选择TUN 适合跨网络环境NAT 更适合测试调试

  • 若业务需要按路径/内容分发,请结合 Nginx/HAProxy 构建七层方案。


如果你想继续深入学习:

  推荐阅读:

  • 《LVS-DR 模式的 ARP 粘滞配置详解》

  • 《从零搭建基于 LVS+Keepalived 的高可用集群》

  • 《Nginx vs LVS vs HAProxy 全面对比》


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

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

相关文章

从零手写Java版本的LSM Tree (八):LSM Tree 主程序实现

&#x1f525; 推荐一个高质量的Java LSM Tree开源项目&#xff01; https://github.com/brianxiadong/java-lsm-tree java-lsm-tree 是一个从零实现的Log-Structured Merge Tree&#xff0c;专为高并发写入场景设计。 核心亮点&#xff1a; ⚡ 极致性能&#xff1a;写入速度超…

pycharm 设置环境出错

pycharm 设置环境出错 pycharm 新建项目&#xff0c;设置虚拟环境&#xff0c;出错 pycharm 出错 Cannot open Local Failed to start [powershell.exe, -NoExit, -ExecutionPolicy, Bypass, -File, C:\Program Files\JetBrains\PyCharm 2024.1.3\plugins\terminal\shell-int…

PyTorch深度学习框架60天进阶学习计划-第57天:因果推理模型(一)

第57天&#xff1a;因果推理模型&#xff08;一&#xff09;- 揭开因果关系的神秘面纱 &#x1f3af; 学习目标概览 今天我们要踏入一个既古老又前沿的领域——因果推理&#xff01;如果说传统的机器学习是在找"相关性"&#xff0c;那因果推理就是在挖掘"因果…

Java反射操作百倍性能优化

欢迎来到啾啾的博客&#x1f431;。 记录学习点滴。分享工作思考和实用技巧&#xff0c;偶尔也分享一些杂谈&#x1f4ac;。 有很多很多不足的地方&#xff0c;欢迎评论交流&#xff0c;感谢您的阅读和评论&#x1f604;。 目录 引言避免在性能敏感的热点代码中使用反射缓存反射…

STM32 _main 里做了什么

Application startup 在大多数嵌入式系统中&#xff0c;进入 main 函数之前需要执行一段初始化序列来设置好系统环境。下图展示的就是这段初始化序列的默认流程&#xff1a; Figure 1. Default initialization sequence __main is responsible for setting up the memory and…

Java八股文——MySQL「SQL 基础篇」

NOSQL和SQL的区别&#xff1f; 面试官您好&#xff0c;SQL&#xff08;关系型数据库&#xff09;和NoSQL&#xff08;非关系型数据库&#xff09;是当今数据存储领域的两大主流阵营。它们之间不是“谁取代谁”的关系&#xff0c;而是两种完全不同的设计哲学&#xff0c;适用于…

华为OD机考-数字螺旋矩阵(JAVA 2025B卷)

public class RotateMatrix {public static void main(String[] args) {// 顺时针螺旋矩阵printMatrixV1();// 逆时针螺旋矩阵//printMatrixV2();}private static void printMatrixV2() {Scanner scan new Scanner(System.in);while(scan.hasNextLine()){String[] line scan.…

【Java工程师面试全攻略】Day7:分布式系统设计面试精要

一、分布式系统概述 分布式系统已成为现代互联网应用的标配架构&#xff0c;据LinkedIn统计&#xff0c;分布式系统设计能力是高级Java工程师薪资差异的关键因素。今天我们将深入解析分布式系统的核心理论和实践&#xff0c;帮助你掌握面试中的系统设计问题。 二、分布式理论…

Excel处理控件Aspose.Cells教程:在Excel 文件中创建、操作和渲染时间线

您可以使用数据透视表时间轴&#xff0c;而无需调整过滤器来显示日期——这是一种动态过滤器选项&#xff0c;可让您轻松按日期/时间进行过滤&#xff0c;并使用滑块控件放大所需的时间段。Microsoft Excel 允许您通过选择数据透视表&#xff0c;然后单击“插入”>“时间轴”…

Python----神经网络发(神经网络发展历程)

年份网络名称突出点主要成就论文地址1989LeNet首个现代卷积神经网络&#xff08;CNN&#xff09;&#xff0c;引入卷积、池化操作手写数字识别先驱&#xff0c;奠定CNN基础MNIST Demos on Yann LeCuns website2012AlexNet首次大规模使用深度卷积神经网络进行图像识别&#xff1…

mvc与mvp

mvc MVC 架构中&#xff0c;Activity/Fragment&#xff08;作为 View 和 Controller&#xff09;直接持有 Model 或异步任务的引用&#xff0c;当页面销毁时&#xff0c;这些长生命周期对象若未正确释放&#xff0c;会导致 Activity 无法被 GC 回收&#xff0c;形成内存泄漏。…

商业智能中的地图可视化模板:助力数据高效呈现

引言 在数字化浪潮席卷的当下&#xff0c;数据可视化的重要性愈发凸显。企业和组织需要从海量的数据中提取有价值的信息&#xff0c;以便做出明智的决策。而可视化地图组件作为数据可视化的关键部分&#xff0c;能够将数据与地理位置相结合&#xff0c;以直观、美观的方式展示…

Opencv 相机标定相关API及原理介绍

Opencv 相机标定相关API及原理介绍 相机标定是计算机视觉中的基础任务,旨在确定相机的​​内参矩阵​​、​​畸变系数​​以及(可选)​​外参​​(相机相对于世界坐标系的旋转和平移)。OpenCV提供了完整的相机标定工具链,核心函数为cv2.calibrateCamera,其原理基于张正…

深入剖析AI大模型:Prompt 从理论框架到复杂任务的全场景实现

今天我们就Prompt实战&#xff0c;实现一下复杂场景&#xff0c;通过这些实战我们就可以更好的理解大模型工作的原理和机制了。我个人觉得Prompt是AI大模型中非常重要的的环节。首先我们还是温习一下Prompt的框架和基础原则。然后我们就文本生成、问答任务及复杂任务三个方面分…

Fractal Generative Models论文阅读笔记与代码分析

何恺明分型模型这篇文章在二月底上传到arXiv预出版网站到现在已经过了三个月&#xff0c;当时我也听说这篇文章时感觉是大有可为&#xff0c;但是几个月不知道忙啥了&#xff0c;可能错过很多机会&#xff0c;但是亡羊补牢嘛&#xff0c;而且截至目前&#xff0c;该文章应该也还…

IntelliJ IDEA代码提示忽略大小写设置详解

目录 前言一、设置步骤1. 打开设置界面2. 进入代码补全设置3. 配置大小写敏感选项新版本&#xff08;2023及以上&#xff09;旧版本&#xff08;2022及以下&#xff09; 4. 保存并应用设置 二、效果验证示例三、注意事项与常见问题1. **适用范围**2. **版本兼容性**3. **设置未…

Oracle集群OCR磁盘组掉盘问题处理

问题描述 填写问题的基础信息。 系统名称 - IP地址 - 操作系统 HP-UNIX 数据库 Oracle 11.2.0.4 两节点RAC 症状表现 问题的症状表现如下 集群的OCR磁盘组掉了一块盘(/dev/rdisk/disk52): 查询集群仲裁盘发现只有两块&#xff08;原来是有三块&#xff09;&#xff…

在WordPress中彻底关闭生成缩略图的方法

在WordPress中彻底关闭生成缩略图有多种方法&#xff0c;以下是几种常见的方法&#xff1a; 方法一&#xff1a;通过修改主题的functions.php文件 登录WordPress后台&#xff1a;进入WordPress后台管理界面。 编辑主题文件&#xff1a; 在左侧菜单中找到“外观”选项&#…

安全-Linux基线核查项点

Linux基线加固/整改 1.限制超级管理员远程登录 修改远程管理程序ssh的配置文件 vi /etc/ssh/sshd_config PermitRootLogin no 重启sshd服务 systemctl restart sshd 2. 修改默认密码生存周期 一个好的密码时间策略如下&#xff1a; vi /etc/login.defs PASS_MAX_DAY 90 最长…

在微信小程序中使用骨架屏

在微信小程序中使用骨架屏可以优化用户体验&#xff0c;避免页面加载时出现白屏现象。以下是详细的使用方法和注意事项&#xff1a; 使用方法 生成骨架屏代码&#xff1a; 打开微信开发者工具&#xff0c;进入需要添加骨架屏的页面。在模拟器面板右下角点击三个点&#xff0c…