LVS 负载均衡集群
一、集群和分布式1、什么是集群集群是为了解决某个特定问题将多台计算机组合起来形成的单个系统2、集群的类型LB:LoadBalancing负载均衡由多个主机组成每个主机只承担一部分访问HAHigh Availability 高可用消除单点故障保障服务持续运行HPCHigh Performance Computing 高性能计算大规模并行运算3、分布式将一个完整业务拆分为多个子服务各服务器功能不同所有节点组合才构成完整业务单一子节点故障会导致对应功能失效。分布式存储Ceph、GlusterFS、FastDFS分布式计算Hadoop、Spark分布式应用微服务架构二、LVS的作用LVSLinux Virtual Server即Linux虚拟服务器是由中国开发者章文嵩博士发起的一个开源项目现已成为Linux内核的一部分。LVS的核心作用是作为一个四层传输层负载均衡器。它工作于Linux内核中通过修改数据包的目标地址或端口将客户端的请求按照特定的算法分发给后端的真实服务器Real Server从而实现一个高可用、高性能的虚拟服务器集群。LVS的四个优点1.高性能直接工作在内核空间处理网络包的效率极高远超Nginx等七层代理。2.高可靠可与Keepalived结合实现调度器自身的高可用。3.低成本使用廉价的普通服务器即可构建强大的集群系统。4.透明性对客户端而言它访问的只是一个单一的IP地址VIP后端复杂集群是透明的。三、LVS的四种工作模式及原理1. NAT模式网络地址转换原理类似DNAT技术。调度器Director接收客户端请求根据算法选择一台Real Server将请求报文的目标IP和端口改为Real Server的IP和端口然后转发。Real Server处理完响应后将数据包返回给调度器调度器再将源IP修改为VIP返回给客户端。特点所有请求和响应都经过调度器调度器易成瓶颈。RS可以使用私有IP更安全。支持端口映射。2. DR模式直接路由原理这是最常用的模式。调度器接收请求后不修改IP首部只通过修改数据帧的目标MAC地址将请求在局域网内直接转发给选中的Real Server。Real Server处理完请求后直接将响应发送给客户端不再经过调度器。关键点Real Server必须在回环接口lo上配置VIP并抑制ARP响应避免与调度器冲突。特点性能极高请求报文经由调度器响应报文直接返回客户端。但要求调度器和RS必须在同一物理网段。3. TUN模式IP隧道原理调度器接收请求后将原始IP报文封装在一个新的IP报文中新报文的源IP是DIP目标IP是RIP。Real Server收到后解封装处理请求并将响应直接发送给客户端。特点解决了DR模式要求同网段的限制RS可以部署在不同的地理位置。但需要RS支持IP隧道协议配置稍复杂。4. FULLNAT模式原理作为NAT模式的增强版它同时转换了源IP和目的IP。调度器将请求的源IPCIP转换为自己的本地IPDIP目标IPVIP转换为RIP。RS的响应包回到调度器调度器再做相反的转换。特点解决了NAT模式要求RS网关指向调度器的限制使得LVS和RS可以跨网段部署便于大规模水平扩展。但性能比NAT模式稍有下降。四、LVS的13种调度算法1.LVS调度算法类型静态方法仅根据算法本身进行调度不考虑RS的负载情况动态方法主要根据每RS当前的负载状态及调度算法进行调度Overheadvalue较小的RS将被调度2.LVS静态调度算法RR 轮询请求均匀循环分配所有 RS 性能一致时使用WRR 加权轮询配置权重高性能服务器分配更多请求SH 源 IP 哈希同一客户端 IP 永久调度同一 RS原生会话保持DH 目标 IP 哈希同一目标 IP 固定 RS缓存代理场景提升命中率3.LVS动态调度算法LC 最小连接无权重仅看连接数WLC 加权最小连接官方默认算法适配混合配置服务器SED 最短预期延迟(活跃连接1)/权重优先空闲高权重节点NQ 永不排队有空闲节点直接分配无空闲退化为 SEDLBLC 本地最少连接目标 IP 优先原节点负载过高则分流LBLCR 带复制 LBLC缓存集群专用均衡目标 IP 负载FO 加权故障转移按权重遍历分配给第一个未过载节点灰度发布使用OVF 溢出调度高权重服务器连接达阈值后新请求溢出至次一级节点BLLC 平衡本地最少连接优化 LBLC 负载倾斜问题三、LVS部署的相关命令首先部署环境安装软件包-A#添加-E#修改-t#tcp服务-u#udp服务-s#指定调度算法默认为WLC-p#设置持久连接超时持久连接可以理解为在同一个时间段同一个来源的请求调度到同一Realserver-f#firewall mask火墙标记是一个数字对于相关命令的使用管理集群中RealServer的增删改查增加修改删除四、lvs的多端口轮询问题解决方案问题描述以http和https为例当我们在RS中同时开放80和443端口那么默认控制是分开轮询的这样我们就出现了一个轮询错乱的问题当我第一次访问80被轮询到RS1后下次访问443仍然可能会被轮询到RS1上解决方案防火墙标记解决轮询调度问题通过Linux的iptables工具在mangle表中为需要“捆绑”的端口如80和443打上相同的防火墙标记。然后LVS不再基于端口号而是基于这个防火墙标记FWM来创建虚拟服务。这样所有带着相同标记的请求无论来自哪个端口都会被LVS当作同一个服务来处理并始终调度到同一台后端服务器。配置步骤打标记给80和443端口打上6666的标记设定调度规则五、lvs的会话粘滞解决方案问题描述在无状态的负载均衡环境下一个用户连续的操作如果被分发到了不同的服务器会导致其会话状态丢失。解决这个问题的手段称为“会话粘滞”或“持久连接”。解决方案LVS提供了三种主要的解决途径方案一源地址哈希SH算法原理使用-s sh算法LVS会根据客户端的源IP地址计算哈希值将来自同一源IP的所有请求都定向到同一台Real Server。优点实现简单。缺点如果大量用户来自同一个NAT网关即源IP相同会导致负载严重不均。方案二LVS持久连接Persistent Connection原理在创建虚拟服务时添加-p参数并指定超时时间。在超时时间内来自同一个客户端的任何新连接即使源端口变化都会被定向到之前选择的同一台Real Server上。优点可以很好地处理HTTP和HTTPS两种端口的问题效果比SH算法更好。方案三防火墙标记FWMARK结合持久连接这是解决多端口轮询问题与会话粘滞需求的终极方案。它先通过防火墙标记将多个端口“捆绑”然后在此标记上同时应用持久连接策略。通过这种方式无论用户访问的是HTTP还是HTTPS在设定的超时时间内他的所有请求都会稳定地落在同一台Real Server上完美解决了会话保持和多端口轮询的难题。六、总结LVS作为Linux内核级的高性能负载均衡器是现代高并发、高可用架构的重要基石。理解其集群分类、四种工作模式的原理与优劣、十三种调度算法的应用场景并掌握解决多端口轮询和会话粘滞问题的实战方法是构建稳定、高效的网络服务集群的必备技能。

相关新闻

微信/企微聊天记录怎么用 AI 总结?4 种方案的能力与边界

微信/企微聊天记录怎么用 AI 总结?4 种方案的能力与边界

微信和企业微信里的聊天记录,已经成为很多私域业务的重要信息源。真正有价值的并不是把几百条消息压缩成几句话,而是从客户群、服务群和项目群中持续提取: 客户需求和高频问题;已确认的结论;待办事项、负责人和截止时间…

2026/8/29 12:16:30 阅读更多 →
AI智能体技术解析:从任务规划到愿望实现的架构与实践

AI智能体技术解析:从任务规划到愿望实现的架构与实践

最近 OpenAI CEO 山姆奥特曼在一次访谈中再次语出惊人,声称"将造出实现愿望的精灵"。这句话乍听起来像是科幻电影台词,但在 AI 技术快速发展的今天,我们需要认真思考:这到底意味着什么?是营销噱头&#xff0…

2026/8/21 9:33:03 阅读更多 →
Nmap网络扫描从入门到实战:主机发现、端口扫描与安全评估指南

Nmap网络扫描从入门到实战:主机发现、端口扫描与安全评估指南

1. 项目概述:为什么你需要了解Nmap? 如果你刚接触网络安全或者系统运维,听到“Nmap”这个词可能会觉得有点神秘,甚至有点“黑客工具”的意味。但我想告诉你,Nmap远不止于此。它更像是一个网络世界的“超级手电筒”和“…

2026/8/19 20:48:31 阅读更多 →

最新新闻

基于Google Earth Engine的遥感生态指数自动化计算系统构建

基于Google Earth Engine的遥感生态指数自动化计算系统构建

简介:遥感生态指数是综合评估区域生态环境质量的重要指标,它通过主成分分析等方法,融合绿度、湿度、干度和热度等多个基础参量,实现对生态状况的全面刻画。其核心原理在于利用多光谱遥感数据,通过缨帽变换等经典方法提…

2026/8/29 20:54:15 阅读更多 →
SpringBoot实战:毕业生招聘平台全栈开发与毕业设计指南

SpringBoot实战:毕业生招聘平台全栈开发与毕业设计指南

简介:SpringBoot作为Java领域主流的Web开发框架,以其‘约定大于配置’的理念和快速启动能力,极大地简化了企业级应用的开发与部署流程。其核心原理在于通过自动配置和Starter依赖,整合了Spring生态的诸多组件,使开发者…

2026/8/29 20:54:15 阅读更多 →
ROS C++开发实战:从性能优化到混合编程的完整指南

ROS C++开发实战:从性能优化到混合编程的完整指南

1. 项目概述:当C遇见ROS,一场效率与灵活性的深度对话在机器人操作系统(ROS)的生态里,Python因其简洁易用常常成为初学者的首选,仿佛一把瑞士军刀,能快速解决各种问题。但当你真正深入到需要处理…

2026/8/29 20:54:15 阅读更多 →
ROS C++开发实战:从CMake构建到高性能节点优化

ROS C++开发实战:从CMake构建到高性能节点优化

1. 从“认识”到“相恋”:C与ROS的深度绑定之路在机器人开发的圈子里,ROS(Robot Operating System)和C的关系,有点像硬件圈里的“树莓派”和“Python”——一个提供了强大的生态和框架,另一个则是实现核心性…

2026/8/29 20:54:15 阅读更多 →
数位DP精讲:从二进制计数到通用框架,解决蓝桥杯国赛难题

数位DP精讲:从二进制计数到通用框架,解决蓝桥杯国赛难题

1. 从一道国赛真题说起:二进制与数位DP的碰撞最近在整理蓝桥杯的历年国赛真题,第十二届那道“二进制问题”让我印象挺深。这题表面上是问在1到N的整数中,有多少个数的二进制表示里恰好有K个1。乍一看,这题用暴力枚举好像也能做&am…

2026/8/29 20:54:15 阅读更多 →
SPI驱动开发实战:从协议原理到OLED、TF卡、TFT LCD应用

SPI驱动开发实战:从协议原理到OLED、TF卡、TFT LCD应用

1. 项目概述:SPI驱动的核心价值与场景搞嵌入式开发,SPI(Serial Peripheral Interface)总线绝对是绕不开的一道坎。它不像I2C那样有复杂的地址协议,也不像UART那样需要精确的波特率匹配,SPI以其简单、高速、…

2026/8/29 20:53:14 阅读更多 →

日新闻

etc目录下的profile.d文件目录设置环境变量和全局脚本shell

etc目录下的profile.d文件目录设置环境变量和全局脚本shell

一、设置环境变量etc目录下的profile.d文件目录 /etc/profile.d1、编写 vi test.sh文件内容# jdk变量 export ZHK_HOME/root export PATH$PATH:$ZHK_HOME/test # 可以取出来ZHK_HOME变量给ZZZ_HOME赋值 export ZZZ_HOME${ZHK_HOME}/test2、刷新 执行source /etc/profile 命令使…

2026/8/29 0:00:24 阅读更多 →
【JavaScript】内存管理-垃圾回收机制-内存泄露

【JavaScript】内存管理-垃圾回收机制-内存泄露

内存管理 C 语言这样的底层语言一般都有底层的内存管理接口,比如 malloc()和free()。 而 JavaScript 是在创建变量(对象,字符串等)时自动进行了分配内存,并且在不使用它们时“自动”释放。释放的过程称为垃圾回收。 整…

2026/8/29 0:00:24 阅读更多 →
Labgrid-MCP:为嵌入式硬件实验室接入AI Agent操控能力

Labgrid-MCP:为嵌入式硬件实验室接入AI Agent操控能力

Labgrid-MCP 的目标是把 MCP(Model Context Protocol)能力延伸到真实嵌入式硬件实验室:AI Agent 通过一个标准化的 MCP Server,就能查看目标板状态、控制上电断电、复位开发板、读取串口日志,甚至执行镜像刷写。对于经…

2026/8/29 0:00:24 阅读更多 →

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/29 18:08:35 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/28 23:05:07 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/28 19:47:53 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/29 4:34:53 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/28 17:43:04 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/29 2:05:18 阅读更多 →