LVS和集群
一、什么是集群集群就是将多台独立的物理服务器/云服务器通过网络组合成一个整体系统对外提供统一服务集群核心目标四个1. 负载分担业务流量分给多台服务器避免单机压力过大2. 横向扩容流量上涨直接新增服务器不用更换高配机器3. 高可用容错某一台服务器故障其余节点继续工作服务不中断4. 高性能分布式分担计算、访问压力二、集群分类1负载均衡集群 LBLoad Balancing Cluster核心分担用户访问流量。外部大量请求进来调度器按照策略分发到后端多台真实服务器。常用软件LVS、Nginx、HAProxy、F5硬件负载均衡。典型场景网站、接口服务、Web业务。2高可用集群 HAHigh Availability Cluster核心解决单点故障。存在主、备节点。主节点故障备节点自动快速接管IP、服务保障业务持续运行。常用软件Keepalived、Pacemaker。常和LB搭配LVS负责流量分发Keepalived实现调度器主备切换。3高性能计算集群 HPCHigh Performance Computing Cluster核心分布式并行计算。把巨大的计算任务拆分分发到多台服务器同时运算。适用场景气象模拟、建模、渲染、科学计算普通互联网业务很少使用。企业生产标准架构LVS(四层负载) Keepalived三、LVS介绍以及作用LVS全称 Linux Virtual ServerLinux虚拟服务器集成在Linux内核中。基础环境安装所有模式通用# 安装LVS管理工具yum install -y ipvsadmipvsadm -CLVS核心作用1. 四层负载均衡工作在OSI四层传输层TCP/UDP只操作IP、MAC数据包不解析HTTP等应用层内容转发性能极高可以支撑数十万、百万并发连接。2. 统一入口对外暴露一个虚拟IPVIP用户只访问VIP看不到后端多台RS。3. 支持丰富调度算法灵活分配流量。4. 支持后端服务器健康检查自动剔除故障节点不再向故障机器分发流量。四、LVS 四种工作模式完整原理1. NAT 模式网络地址转换模式echo 1 /proc/sys/net/ipv4/ip_forward​ ipvsadm -A -t 172.25.254.100:80 -s rr ipvsadm -a -t 172.25.254.100:80 -r 172.25.254.10:80 -m ipvsadm -a -t 172.25.254.100:80 -r 172.25.254.11:80 -m原理流程1. 客户端发起请求 → 目标地址VIP2. Director收到数据包修改数据包目标IP替换成后端RS的真实IPRIP转发给RS3. RS处理请求返回响应包数据包源IP是RIP目的IP是客户端IP4. RS的响应必须经过Director调度器再次修改数据包源IP由RIP改回VIP发回客户端2. DR 模式Direct Routing 直接路由生产首选ifconfig eth0:0 172.25.254.100 netmask 255.255.255.0 up ipvsadm -A -t 172.25.254.100:80 -s wrr ipvsadm -a -t 172.25.254.100:80 -r 172.25.254.10:80 -g ipvsadm -a -t 172.25.254.100:80 -r 172.25.254.11:80 -g原理流程1. 客户端请求到达VIP数据包IP不变源IP客户端IP目标IP始终VIP2. Director只修改二层MAC地址把目标MAC修改成后端RS的MAC转发到局域网内RS3. RS网卡收到数据包本机配置VIPlo网卡隐藏VIP识别数据包并处理请求4. RS构造响应报文直接通过网关返回给客户端不再经过Director# 抑制ARP冲突echo 1 /proc/sys/net/ipv4/conf/lo/arp_ignoreecho 2 /proc/sys/net/ipv4/conf/lo/arp_announce# RS绑定VIP到回环口ifconfig lo:0 192.168.1.100 netmask 255.255.255.255 up3. TUN 模式IP隧道模式 IP Tunnelingipvsadm -A -t 172.25.254.100:80 -s rr ipvsadm -a -t 172.25.254.100:80 -r 172.25.254.10:80 -i ipvsadm -a -t 172.25.254.100:80 -r 172.25.254.11:80 -i原理流程1. Director收到客户端数据包不修改原有报文在原始IP包外层再封装一层新IP头部2. 通过IP隧道将封装后的数据包跨网段发送给后端RS3. RS解封装拿到原始请求报文进行业务处理4. RS响应报文直接绕过调度器独立返回客户4. FULLNAT 模式全NAT模式内核3.9之后支持原理流程1. 客户端请求到Director2. 调度器同时修改源IP、目标IP源IP客户端IP → 调度器本地内网IP目标IPVIP → RS真实IP3. RS回包时目标IP是调度器内网IP再次经过Director4. Director转换地址后返回客户端五、LVS 13种调度算法静态算法不感知服务器当前连接数量固定规则分发1. RR 轮询请求依次轮流分给每一台RS2. WRR 加权轮询给机器设置权重配置越高分到请求越多3. DH 目标地址哈希根据客户端目标IP哈希固定分配RS4. SH 源地址哈希根据客户端源IP哈希同一个客户固定访问同一台RS简易会话保持动态算法实时查看后端连接数动态均衡流量推荐生产使用5. LC 最小连接新请求分配给当前连接数最少的后端6. WLC 加权最小连接【最常用】综合权重连接数默认调度算法。计算负载负载最低的RS接收请求。7. LBLC 基于本地的最小连接目标IP做缓存适用于缓存集群8. LBLCR 带复制的本地最小连接缓存集群场景9. SED 最短期望延迟加权最小连接优化版10. NQ 永不排队空闲服务器优先分配没有空闲再使用SED策略六、LVS 多端口轮询问题 解决方案1. 在rs主机中同时开始http和https两种协议2.如果完成设定后http和https都是独立的service会出现重复问题3.当同时开启http和https服务利用防火墙对于80端口和443端口的访问流量做标记设定标记为6666随后标记进行负载[rootvsnode boot]# ipvsadm -A -t 192.168.188.200:80 -s rr [rootvsnode boot]# ipvsadm -a -t 192.168.188.200:80 -r 192.168.188.20 -g [rootvsnode boot]# ipvsadm -a -t 192.168.188.200:80 -r 192.168.188.10 -g [rootvsnode boot]# ipvsadm -A -t 192.168.188.200:443 -s rr [rootvsnode boot]# ipvsadm -a -t 192.168.188.200:443 -r 192.168.188.10:443 -g [rootvsnode boot]# ipvsadm -a -t 192.168.188.200:443 -r 192.168.188.20:443 -g [rootvsnode boot]# iptables -t mangle -A PREROUTING -d 192.168.188.200 -p tcp -m multiport --dports 80,443 -j MARK --set-mark 6666 [rootvsnode boot]# ipvsadm -A -f 6666 -s rr [rootvsnode boot]# ipvsadm -a -f 6666 -r 192.168.188.10 -g [rootvsnode boot]# ipvsadm -a -f 6666 -r 192.168.188.20 -g4.验证[rootclient ~]# curl 192.168.0.200;curl -k https://192.168.0.200 RS2 - 192.168.0.20 RS1 - 192.168.0.10七、LVS会话粘滞会话保持解决方案什么场景需要会话保持传统Web业务session保存在本机用户连续多次请求必须访问同一台RS否则登录状态丢失。方案1LVS SH源地址哈希四层原生方案调度算法修改为SH同一个客户端IP始终调度至同一台Real Server。弊端局域网大量用户出口同一个公网IP流量分配不均。方案2持久连接模板 ipvs persistenceLVS持久化设置persistence_timeout超时时间。指定时间内同一客户端IP持续调度到同一RS。ipvsadm -A -f 6666 -s rr -p 1方案3七层层实现会话保持NginxLVS只做四层转发上层Nginx依靠Cookie、ip实现会话绑定。灵活性最高。方案4业务架构改造业务无状态化session统一放入Redis/共享存储。不再依赖会话粘滞集群扩容、故障转移更加平滑大型互联网标准方案。

相关新闻

4大核心优势解析:bilibili-downloader如何实现专业级B站视频下载

4大核心优势解析:bilibili-downloader如何实现专业级B站视频下载

4大核心优势解析:bilibili-downloader如何实现专业级B站视频下载 【免费下载链接】bilibili-downloader B站视频下载,支持下载大会员清晰度4K,持续更新中 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-downloader 在当今数…

2026/10/20 18:23:32 阅读更多 →
pH与温度对九肽-1水溶液稳定性的影响规律研究

pH与温度对九肽-1水溶液稳定性的影响规律研究

一、九肽-1(Nonapeptide-1)水溶液稳定性研究概述九肽 - 1(Nonapeptide-1,CAS:158563-45-2)为九氨基酸构成的功能性短肽,在多肽材料研发、功能配方开发及生物相关研究中应用广泛。分子内部包含大…

2026/10/19 12:19:03 阅读更多 →
vivo iQOO手机ADB连接全攻略:从原理到实战解决连接失败

vivo iQOO手机ADB连接全攻略:从原理到实战解决连接失败

1. 从一次调试失败说起:为什么你的IQOO连不上ADB? 那天下午,我正试图给一台vivo IQOO Neo 5调试一个自研的自动化脚本,结果在命令行里敲下 adb devices 后,列表空空如也。电脑明明识别了手机,能正常传输文…

2026/10/20 9:22:10 阅读更多 →

最新新闻

Django生产级博客骨架源码:零配置启动+可部署结构

Django生产级博客骨架源码:零配置启动+可部署结构

简介:这是一套基于Django框架从零开始构建的个人博客网站完整源码,面向Python后端初学者与Web开发入门者,帮助学习者系统掌握Django项目结构、ORM建模、模板渲染、静态资源管理及基础部署流程。压缩包共421个文件,涵盖26个核心Pyt…

2026/10/20 19:41:21 阅读更多 →
PyTorch项目实战:从零搭建图像分类的避坑指南

PyTorch项目实战:从零搭建图像分类的避坑指南

1. 从零手搓一个PyTorch项目:一个老手的踩坑与实战笔记搞深度学习这几年,PyTorch几乎成了我每天都要打交道的工具。但说实话,真正让我头疼的从来不是写模型结构本身,而是从环境配置到训练调优这一整条链路上那些琐碎又致命的细节。…

2026/10/20 19:41:21 阅读更多 →
多虚拟电厂主从博弈与ACPSO-EI-Kriging及APVP-MHA-MTL预测框架全解析

多虚拟电厂主从博弈与ACPSO-EI-Kriging及APVP-MHA-MTL预测框架全解析

先说结论:这个标题的含金量主要在“组合方式”,而不是单点技术。ACPSO、EI、Kriging、主从博弈、APVP、MHA、MTL,每一个单拎出来都有大量现成资料,但把它们按“上层优化下层代理博弈交互”和“多任务注意力共享表征预测”两条线组…

2026/10/20 19:41:21 阅读更多 →
改进DINO-4scale模型实现棉田作物生长监测与目标检测

改进DINO-4scale模型实现棉田作物生长监测与目标检测

棉田生长监测这件事,做农业视觉的人应该深有体会:无人机拍回来的正射影像分辨率很高,但地面棉株一进入封行期,棉铃、棉蕾全被叶片盖住,人工看图数起来又慢又晕。更麻烦的是,棉田目标天生就“小、密、遮挡多…

2026/10/20 19:41:21 阅读更多 →
降AI率实操指南:6类免费工具与人工精修方法

降AI率实操指南:6类免费工具与人工精修方法

每年四五月份,总有学弟学妹半夜给我发消息,上来就问:“论文AI率80%多,学校查重前要求降到10%以下,怎么办?”说实话,这个问题我自己当年也撞上过,被检测报告上的高百分比吓得连夜改稿…

2026/10/20 19:41:21 阅读更多 →
WebSocket消息推送实战:从轮询到高并发长连接的全流程拆解

WebSocket消息推送实战:从轮询到高并发长连接的全流程拆解

接手过一个实时通知服务,业务上要求订单状态变更、客服会话、后台告警都要在秒级内推到用户端。最开始图省事用HTTP轮询,连接一多业务一复杂就明显顶不住——服务端压力大、客户端拿到的数据也不是实时的,高峰时段光无效请求就能把接口拖垮。…

2026/10/20 19:40:18 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →