7月27日第一次作业
LVS 项目知识点总结作业一、什么是集群Cluster1. 描述集群是指一组相互独立的计算机服务器通过高速网络连接作为一个整体对外提供服务。对于客户端来说访问集群就像访问一台高性能的服务器一样。集群系统通过多台服务器的协同工作提供了高可用性、高并发处理能力和可扩展性。2.步骤集群工作流程步骤 1客户端向集群的虚拟IPVIP发起服务请求。步骤 2调度器负载均衡器接收到请求。步骤 3调度器根据预设的算法将请求分发到后端的某一台真实服务器Real Server上。步骤 4后端服务器处理请求并将结果返回给客户端。二、集群分类1. 描述根据主要目的不同计算机集群通常分为三类高可用性集群High Availability Cluster, HA作用保证服务的连续性。当主节点宕机时备用节点能立即接管服务避免业务中断如双机热备。负载均衡集群Load Balancing Cluster, LBC作用将大量的用户访问请求分摊给多台服务器处理提高系统的整体响应速度和并发处理能力LVS 属于此类。高性能计算集群High Performance Computing Cluster, HPC作用利用多台服务器的计算能力进行复杂的科学计算、数据分析等任务如大数据处理、天气预报模拟。三、LVS 的作用1. 描述LVSLinux Virtual ServerLinux 虚拟服务器是 Linux 内核自带的负载均衡软件。它的核心作用是在 Linux 操作系统上构建一个高性能、高可用的负载均衡集群。负载均衡将客户端的请求分发到后端多台真实服务器RS。高可用性当后端某台服务器宕机时LVS 能够自动检测并将其剔除出集群不影响整体服务。性能提升利用多台服务器分担请求极大地提高了业务的并发处理能力。四、LVS 的4种模式及原理1. 描述LVS 主要有四种工作模式NAT、DR、TUN、FULLNAT。其中 DR 模式最常用。1LVS-NAT网络地址转换模式原理客户端请求到达 LVS调度器LVS 修改请求报文的目标 IP 地址VIP 改为 RIP转发给后端 RS。RS 处理完毕后将响应报文返回给 LVSLVS 再将源 IP 改为 VIP 返回给客户端。特点请求和响应都必须经过 LVSLVS 容易成为瓶颈。2LVS-DR直接路由模式原理LVS 只修改请求报文的目标 MAC 地址将请求直接转发给后端的 RS。RS 处理完毕后直接将响应报文返回给客户端不回传给 LVS。特点响应流量不经过 LVS性能极高是生产环境最常用的模式。要求 LVS 和 RS 必须在同一个物理网段。3LVS-TUN隧道模式原理LVS 将请求报文通过 IP 隧道IPIP封装转发给后端的 RS。RS 收到后解封装处理请求并直接返回响应给客户端。特点LVS 和 RS 可以不在同一个网段支持跨网段调度但开销较大。4LVS-FULLNAT完全 NAT 模式原理在 NAT 基础上不仅修改目标 IP还修改源 IPCIP 改为 LVS 的 IP。这样确保了请求和响应都能正常返回 LVS再转发给客户端。特点后端 RS 不需要配置网关指向 LVS部署更灵活但性能损耗较大。2.步骤DR 模式配置简要步骤步骤 1在 LVS 调度器上配置 VIP绑定在 lo 口或物理网卡上。步骤 2在 LVS 上配置 ipvsadm 规则设置 VIP 和调度算法。步骤 3在 RS 服务器上配置 VIP 绑定到 lo 口抑制 ARP 响应防止 VIP 冲突。步骤 4在 RS 服务器上配置内核参数arp_ignore和arp_announce禁止响应 VIP 的 ARP 请求。步骤 5验证访问测试负载均衡效果。五、LVS 的13种算法1. 描述LVS 的调度算法决定了调度器如何将新请求分配给后端的真实服务器RS。分为静态算法和动态算法两大类共 13 种。静态调度算法4种不考虑后端服务器的当前负载情况。RR轮询按顺序轮流分配。WRR加权轮询根据权重比例分配权重高的服务器获得更多请求。DH目标地址哈希根据请求的目标 IP 地址进行哈希分配相同目标 IP 始终发给同一台 RS。SH源地址哈希根据请求的源 IP 地址进行哈希分配相同客户端 IP 始终发给同一台 RS实现会话保持。动态调度算法9种根据后端服务器的实时负载情况动态分配。LC最小连接数分配当前连接数最少的 RS。WLC加权最小连接数在 LC 基础上加入权重计算(当前连接数 / 权重)最小的 RS 优先分配LVS 默认算法。SED最短期望延迟计算(当前连接数 1) / 权重选取值最小的 RS。NQ永不排队如果有空闲的 RS直接分配否则使用 SED 算法。LBLC基于本地的最少连接针对目标 IP 的调度尽量将相同目标 IP 的请求发给同一台 RS但如果该 RS 过载则找其他 RS。LBLCR带复制的本地最少连接在 LBLC 基础上如果某台 RS 负载过高可以将其承载的部分目标 IP 复制到其他 RS。DH目标地址哈希也属动态注意不同版本的归类有些将其归为基于目标地址的动态哈希。SH源地址哈希也属动态类似。MQ最低队列LVS 内核较少直接使用。(注实际常说的 RR、WRR、LC、WLC、SH、DH 等是核心算法13 种是统称)六、LVS 的多端口轮询问题解决方案1. 描述问题LVS 默认配置下ipvsadm 只能针对单一端口进行调度。如果后端服务器同时运行了多个服务如 Web 的 80 端口 和 HTTPS 的 443 端口我们需要分别配置两条规则。如果服务端口数量非常多例如几十个手动配置会非常繁琐且不容易维护。解决方案与步骤FWMARK 防火墙标记法步骤 1使用 iptables 的multiport模块将多个需要调度的目标端口如 80, 443打上一个相同的防火墙标记例如--set-mark 10。步骤 2在 ipvsadm 中不绑定具体的端口而是使用-f参数绑定这个防火墙标记号例如ipvsadm -A -f 10。步骤 3添加后端真实服务器时端口指定为0表示由标记决定。效果一个规则管理了所有端口的流量实现了多端口统一轮询。七、LVS 的会话粘滞解决方案1. 描述问题用户在访问网站时通常会产生会话状态Session例如登录状态、购物车信息等。如果使用轮询RR等算法用户第一次请求到了服务器 A第二次请求被分发到了服务器 B由于服务器 B 没有该用户的 Session用户会被迫重新登录导致体验极差。这就是“会话粘滞Session Sticky”问题。2.解决方案与步骤方案一使用 LVS 的源地址哈希算法SH步骤 1在 LVS 配置中将调度算法设置为shSource Hashing。步骤 2配置好后同一个客户端 IP 的所有请求都会被哈希算法固定分发到同一台真实服务器上从而保证 Session 不丢失。缺点如果该服务器宕机用户的 Session 还是会丢失虽然此时会切换到其他服务器。方案二统一会话存储Redis/Session 共享更推荐步骤 1在后端所有的 Web 服务器如 Tomcat、PHP中不将 Session 存放在本地内存。步骤 2搭建一个独立的 Redis 或 Memcached 缓存集群。步骤 3将所有服务器的 Session 存储全部指向这个统一的 Redis 集群如修改 Tomcat 的context.xml配置。步骤 4这样无论 LVS 将请求分配给哪一台 Web 服务器服务器都能从同一个 Redis 中读取到用户的 Session 数据。优点彻底解决了 LVS 调度带来的会话问题即使某一台服务器坏掉用户的登录状态依然不受影响。

相关新闻

Ollama与Qwen3.5本地大模型部署实战指南

Ollama与Qwen3.5本地大模型部署实战指南

1. 项目概述:为什么选择OllamaQwen3.5组合?2026年的今天,本地大模型部署已经不再是科研机构的专利。作为一名长期在AI工程化领域实践的开发者,我亲历了从云端API调用到本地化部署的完整技术演进。Ollama作为当前最轻量的大模型管理…

2026/9/23 7:27:15 阅读更多 →
3步快速上手:在macOS上运行Windows软件和游戏的完整指南

3步快速上手:在macOS上运行Windows软件和游戏的完整指南

3步快速上手:在macOS上运行Windows软件和游戏的完整指南 【免费下载链接】Whisky A modern Wine wrapper for macOS built with SwiftUI 项目地址: https://gitcode.com/gh_mirrors/wh/Whisky 想在苹果电脑上运行Windows专属的办公软件吗?希望畅玩…

2026/9/23 14:52:01 阅读更多 →
深入C语言标准库源码:从原理到实践的学习指南

深入C语言标准库源码:从原理到实践的学习指南

1. 项目概述:为什么要看C语言标准库源码?很多C语言学习者,在掌握了基础语法和指针操作后,会进入一个平台期:能写代码,但总觉得对这门语言的理解浮于表面。比如,你知道printf能打印,m…

2026/9/22 13:40:06 阅读更多 →

最新新闻

GSEA结果解读与完整分析流程:从基因排序到上下调通路识别

GSEA结果解读与完整分析流程:从基因排序到上下调通路识别

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

2026/9/24 7:50:16 阅读更多 →
产业的变革

产业的变革

城市交通长期面临三大结构性难题:人为驾驶事故率高、通勤拥堵治理难度大、公共交通与货运行业人力成本持续攀升。传统辅助驾驶技术依赖大量人工接管,无法从根本上解决疲劳驾驶、注意力分散、路况预判不足等安全问题,同时分层式自动驾驶架构算…

2026/9/24 7:50:16 阅读更多 →
ChameleonUltra侦测实战:全加密M1卡密钥恢复与复制全流程

ChameleonUltra侦测实战:全加密M1卡密钥恢复与复制全流程

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

2026/9/24 7:50:16 阅读更多 →
医疗数据采集怕踩红线?Python合规抓取公开病历与疾病趋势分析全流程

医疗数据采集怕踩红线?Python合规抓取公开病历与疾病趋势分析全流程

做医疗相关数据分析或者公共卫生研究的朋友,应该都遇到过数据难题:想做疾病趋势分析,却不知道哪些数据能合法采集,要么找不到公开数据源,要么怕一不小心触碰患者隐私红线。网上很多教程一上来就教爬医院系统&#xff0…

2026/9/24 7:50:15 阅读更多 →
咨询报告和商业方案发给客户,怎么避免“方案看完了,项目却没签”?

咨询报告和商业方案发给客户,怎么避免“方案看完了,项目却没签”?

咨询公司、独立顾问、市场研究机构经常遇到一个很现实的问题:客户需要先看方案,才能决定是否合作。但问题是:方案本身往往就是服务价值的一部分。例如:市场分析;企业诊断;品牌策略;商业方案&…

2026/9/24 7:50:15 阅读更多 →
LTspice变压器仿真:耦合电感建模与参数化扫描实战

LTspice变压器仿真:耦合电感建模与参数化扫描实战

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

2026/9/24 7:49:15 阅读更多 →

日新闻

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为…

2026/9/24 0:00:19 阅读更多 →
单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

简介:一份基于单细胞RNA测序数据的细胞类型注释算法研究Python毕业设计源码,针对计算机相关专业正在做毕设或需要项目实战的学习者,可用于课程设计与期末大作业。项目代码完整、经导师指导评审通过,可直接运行,覆盖数据…

2026/9/24 0:00:19 阅读更多 →
C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

第一次在项目里被反射卡住,是在一个老旧的WinForms模块里:几十个类依赖PropertyChanged通知,运行时反射读属性、发通知,每次启动慢半拍不说,一上.NET Native/AOT裁剪模式几乎全面崩盘。后来我把这段逻辑全部改成C#源生…

2026/9/24 0:00:19 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/23 4:55:02 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/23 4:49:06 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/23 9:53:41 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/23 9:53:40 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/23 9:53:40 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/23 9:53:40 阅读更多 →