当前位置: 首页 > news >正文

LVS之DR模式(最常见的LVS负载方式,直接路由模式)

一、LVS-DR模式的数据流向

1、负载均衡器lvs调度器:只负责请求和转发到后端的真实服务器,但是响应结果,由后端服务器直接转发给客户端,不需要经过调度器的处理,减轻lvs调度器的负担,提高性能和稳定性

二、LVS-DR模式的工作原理(重点)

(一)工作原理

1、客户端发送请求到VIP

2、lvs的调度器接受请求之后,根据算法选择一台后端的真实服务器,请求转发到后端RS,把请求报文的目的Mac地址,修改成后端真实服务器的Mac地址,然后转发

3、后端真实服务器接受请求,处理完成之后。由后端服务器直接把响应结果转发给客户端,响应报文中的目的Mac地址修改成客户端的Mac地址,直接把响应报文转发到客户端

4、调度器,后端真实服务器都有VIP地址,调度的地址和后端真实服务器在同一网段

(二)重点:两台后端真实服务器都有VIP地址:中间器,在后端真实服务器上进行ip地址和Mac地址转换。

(三)VIP的作用:(设置相同的VIP地址)

1、标识后端的真实服务器

2、保证调度器和后端服务器之间的通信,保证请求可以正确的转发到后端服务器

3、实现高可用和故障转移

(四)问题1:由于调度器和后端真实服务器都有相同的VIP地址,导致响应冲突,ARP通信紊乱

1、对真实服务器进行处理,让真实服务器不响应针对VIP的ARP请求

2、VIP地址使用LO的虚拟地址:arp_ignore=1——设置内核优化的操作

3、后端真实服务器只响应目的ip为本地ip,也就是RIP(后端服务器的真实ip,ens33网卡提供的地址)

(五)问题2:返回报文使用的源地址还是VIP地址,调度器也是VIP,怎么把响应返回到客户端而不经过调度器

1、对后端真实服务器做内核参数的优化:arp_announce=2(系统不使用ip数据包的源地址,来设置ARP的请求)

2、真实的物理网卡的地址

三、DR模式的特点

1、调度器的ip和真实服务器的ip必须在同一个物理网络中

2、真实服务器的IP地址可以是私有地址,也可以是公网地址(一般都是私有地址;如果配置的是公网地址,可以通过互联网直接访问ip)

3、调度器只作为入口,不做网关(不进行数据转发),要把服务器的转发功能关闭

4、后端真实服务器的网关也不能指向调度器,真实服务器的数据包不允许经过调度器

5、后端真实服务器上,基于LO接口配置VIP的IP地址

四、ARP协议(网络层协议)

1、ARP协议:将IP地址解析为物理Mac地址

2、ARP协议的工作原理

3、ARP协议的核心:解决局域网内部的通信,IP地址和Mac地址映射

五、配置DR模式(实现DR模式的负载均衡)

test1  20.0.0.10 调度器

test2  20.0.0.12 web集群1

test3  20.0.0.13  web集群2

test4  NFS

VIP地址:20.0.0.100

(一)配置调度器

1、加载ip_vs的内核

2、安装软件

3、配置VIP地址

4、调度器的内核优化

5、配置策略

(二)配置共享服务

(三)配置后端服务器

1、编译安装nginx

2、基于回环接口创建虚拟网卡

3、把VIP地址绑定到lo:0,作为lvs的VIP地址。起到标识的作用,告诉调度器,进行转发请求的IP地址寻址

4、优化内核

五、总结

1、DR模式:核心就是响应客户端由后端的真实服务器完成,不需要经过调度器

2、VIP地址:调度器和后端服务器都要有VIP地址

3、VIP地址的作用

(1)暴露访问地址

(2)调度器转发请求的标识

(3)调度器和后端服务器之间通过VIP地址进行通信

(4)高可用(基于DR模式)

4、其他所有的请求和响应都被禁用

六、负载均衡算法

1、修改VIP的调度算法:ipvsadm -E -t 20.0.0.100:80 -s wrr

2、修改策略的轮询权重:ipvsadm -e -t 20.0.0.100:80 -r 20.0.0.12:80 -w 3

每修改完要先保存、再重启

3、wrr负载均衡器的调度算法

Forward:负载均衡算法和负载均衡方式,route就是DR模式

weight:后端服务器的轮询权重

activeconn:活跃连接,表示调度器正在处理的活动连接数,这些连接正在进行传输数据或正在进行交互

Inactiveconn:表示当前处于非活动状态的连接数,已经建立连接但是目前没有数据传输,第二个连接处于等待状态

七、重点

(一)lvs负载均衡的工作方式:NAT、DR、TUN,最常用的就是DR模式

(二)NAT和DR模式

NAT

DR

优点

配置简单

性能最好

缺点

性能瓶颈

调度服务器和后端真实服务器不能跨网段

真实服务器

ANY

不能支持ARP响应(NO-ARP),只能到真实服务器

支持的网络模式

私网

既可以是内网也可以是公网

真实服务器数量

low(10-20台)

100台

(三)NAT和DR模式的工作原理

相关文章:

LVS之DR模式(最常见的LVS负载方式,直接路由模式)

一、LVS-DR模式的数据流向 1、负载均衡器lvs调度器:只负责请求和转发到后端的真实服务器,但是响应结果,由后端服务器直接转发给客户端,不需要经过调度器的处理,减轻lvs调度器的负担,提高性能和稳定性 二、…...

006:vue使用lottie-web实现web动画

文章目录 1. 简介2. 优点3. 效果4. 安装使用5. lottie-web 常用方法6. Lottie-web 常用的事件 1. 简介 官方介绍:Lottie 是一个库,可以解析使用AE制作的动画(需要用bodymovie导出为json格式),支持web、ios、android、flutter和re…...

Java NIO

Java NIO 一,介绍 Java NIO(New IO)是 JDK 1.4 引入的一组新的 I/O API,用于支持非阻塞式 I/O 操作。相比传统的 Java IO API,NIO 提供了更快、更灵活的 I/O 操作方式,可以用于构建高性能网络应用程序。 …...

人机交互中的数字与文字

人机交互是指人类与计算机系统之间进行信息交流和操作的过程。在人机交互中,数字和文字被广泛应用于界面设计、输入输出、交流和信息展示等方面。 数字在人机交互中常用于表示数据、数量和参数等信息。通过数字,我们可以输入和输出各种数值,进…...

C++11新特性之十六:std::tie

在c 11标准库中&#xff0c;加入了std::tie&#xff0c;在c 14中改进&#xff0c;方便使用。 其与std::tuple关系密切&#xff0c; 主要目的是方便地使用std::tuple。 std::tie函数的作用就是从元素引用中生成一个std::tuple元组&#xff0c;其在头文件<tuple>中定义&…...

今天是1024节日,作为一个程序员,我想表达我对Java和詹姆斯·高斯林(James Gosling)的感激之情

今天是1024节日 我感谢Java感谢詹姆斯高斯林 今天是1024节日&#xff0c;作为一个程序员&#xff0c;我想表达我对Java和詹姆斯高斯林&#xff08;James Gosling&#xff09;的感激之情。Java是一门伟大的编程语言&#xff0c;而詹姆斯高斯林是它的创造者之一。 首先&#xf…...

众和策略:华为汽车概念活跃,圣龙股份斩获12板,华峰超纤涨10%

华为轿车概念23日盘中再度生动&#xff0c;到发稿&#xff0c;华峰超纤涨超10%&#xff0c;佛山照明、圣龙股份、隆基机械、银宝山新等涨停&#xff0c;赛力斯涨近6%。 值得注意的是&#xff0c;圣龙股份已接连12个交易日涨停。 昨日晚间&#xff0c;圣龙股份宣布前三季度成果…...

关于一篇“范式详解”博文的批注

本篇文章是对于下面这个链接中的文章的批注。这篇文章详细讲述了第一、二、三范式和BCNF范式&#xff0c;希望我的这篇文章能帮助您更好的理解这篇优秀的博文 详解第一范式、第二范式、第三范式、BCNF范式-CSDN博客 “范式”批注 这样理解范式的概念&#xff1a;一张数据表的表…...

LNMP架构部署Discuz论坛系统

文章目录 LNMP架构&部署Discuz论坛系统部署LNMP架构环境前期准备安装Nginx安装mariadb安装php配置nginx 部署Discuz论坛系统下载Discuz论坛系统代码包部署Discuz论坛系统配置虚拟主机安装Discuz论坛访问站点尝试注册一个账号 LNMP架构&部署Discuz论坛系统 部署LNMP架构…...

【vscode】本地配置和根据不同项目不同的vscode配置

目录 1. .vscode项目配置2. vscode本地配置 1. .vscode项目配置 {"typescript.tsdk": "node_modules/typescript/lib","prettier.enable": false,"god.tsconfig": "./tsconfig.json",// TODO: 文件默认配置"[css]&quo…...

状态空间方程的离散化

一、理论基础 1、系统离散化&#xff08;传递函数和状态空间方程&#xff09; 【离散系统】传递函数和状态空间方程离散化-CSDN博客 状态空间方程的离散化 - 知乎 (zhihu.com) 2、差分方程的建立与分析 【精选】数学建模之差分方程模型详解_左手の明天的博客-CSDN博客 【信…...

【Docker从入门到入土 3】Docker镜像的创建方法

Part3 一、Docker镜像1.1 镜像的概念1.2 镜像结构的分层 二、Docker镜像的创建2.1 基于现有镜像创建2.1.1 创建思路2.1.2 举个例子 2.2 基于本地模板创建2.3 基于Dockerfile 创建 三、Dockerfile 详解3.1 Dockerfile 操作指令3.1.1 常用的操作指令3.1.2 CMD和ENTRYPOINT的区别…...

Unity实现方圆X范围随机生成怪物

using System.Collections; using System.Collections.Generic; using UnityEngine;public class CreatMonster : MonoBehaviour {// S这个脚本间隔一点时间生成怪物/*1.程序逻辑* 1. 设计一个计时器* 2.间隔一段时间3s执行一下 * */float SaveTime 0f;public GameObject …...

竞赛 深度学习乳腺癌分类

文章目录 1 前言2 前言3 数据集3.1 良性样本3.2 病变样本 4 开发环境5 代码实现5.1 实现流程5.2 部分代码实现5.2.1 导入库5.2.2 图像加载5.2.3 标记5.2.4 分组5.2.5 构建模型训练 6 分析指标6.1 精度&#xff0c;召回率和F1度量6.2 混淆矩阵 7 结果和结论8 最后 1 前言 &…...

基于斑马优化的BP神经网络(分类应用) - 附代码

基于斑马优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码 文章目录 基于斑马优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码1.鸢尾花iris数据介绍2.数据集整理3.斑马优化BP神经网络3.1 BP神经网络参数设置3.2 斑马算法应用 4.测试结果&#xff1a;5.M…...

LINUX | hexdump以16进制查看文件内容

LINUX | hexdump以16进制查看文件内容 时间&#xff1a;2023-10-20 文章目录 LINUX | hexdump以16进制查看文件内容1.参考2.示例1.以ASCII字符显示文件中字符2.以16进制和相应的ASCII字符显示文件里的字符3.只显示文件中前n个字符4.以偏移量开始格式输出 1.参考 1.Linux命令–h…...

layui中页面切分

1.引入Split插件 2.切屏比例设置 pallet与material为标签的id 3.html内部标签上设置切分盒子 4参考网站 : 网站链接...

循环神经网络(Recurrent Neural Network)

1. 为什么需要循环神经网络 RNN 上图是一幅全连接神经网络图&#xff0c;我们可以看到输入层-隐藏层-输出层&#xff0c;他们每一层之间是相互独立地&#xff0c;(框框里面代表同一层)&#xff0c;每一次输入生成一个节点&#xff0c;同一层中每个节点之间又相互独立的话&#…...

管理类联考——英语二——阅读篇——题材:经济

文章目录 2011 年&#xff0c;Text 2——题材&#xff1a;经济句意理解题-原词复现一般不选&#xff0c;但是要留意无中生有推断题-原词复现&#xff0c;注意是否“无中生有”“对象错误”“词意相反”推断题推断题主旨题-不了解阅读意思&#xff0c;很难做出选择 2011 年&…...

【Java】ListIterator

列表迭代器&#xff1a; ListIterator listIterator()&#xff1a;List 集合特有的迭代器该迭代器继承了 Iterator 迭代器&#xff0c;所以&#xff0c;就可以直接使用 hasNext()和next()方法。特有功能&#xff1a; Object previous()&#xff1a;获取上一个元素boolean hasPr…...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作&#xff1a; 1&#xff09;、切换集群 2&#xff09;、切换节点 3&#xff09;、切换到 apparmor 的目录 4&#xff09;、执行 apparmor 策略模块 5&#xff09;、修改 pod 文件 6&#xff09;、…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 笔者写过很多次这道题了&#xff0c;不想写题解了&#xff0c;大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

vue3 字体颜色设置的多种方式

在Vue 3中设置字体颜色可以通过多种方式实现&#xff0c;这取决于你是想在组件内部直接设置&#xff0c;还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法&#xff1a; 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...

12.找到字符串中所有字母异位词

&#x1f9e0; 题目解析 题目描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义&#xff1a; 若两个字符串包含的字符种类和出现次数完全相同&#xff0c;顺序无所谓&#xff0c;则互为…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

汇编常见指令

汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX&#xff08;不访问内存&#xff09;XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

大数据学习(132)-HIve数据分析

​​​​&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4…...

Python 包管理器 uv 介绍

Python 包管理器 uv 全面介绍 uv 是由 Astral&#xff08;热门工具 Ruff 的开发者&#xff09;推出的下一代高性能 Python 包管理器和构建工具&#xff0c;用 Rust 编写。它旨在解决传统工具&#xff08;如 pip、virtualenv、pip-tools&#xff09;的性能瓶颈&#xff0c;同时…...

怎么让Comfyui导出的图像不包含工作流信息,

为了数据安全&#xff0c;让Comfyui导出的图像不包含工作流信息&#xff0c;导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo&#xff08;推荐&#xff09;​​ 在 save_images 方法中&#xff0c;​​删除或注释掉所有与 metadata …...

如何应对敏捷转型中的团队阻力

应对敏捷转型中的团队阻力需要明确沟通敏捷转型目的、提升团队参与感、提供充分的培训与支持、逐步推进敏捷实践、建立清晰的奖励和反馈机制。其中&#xff0c;明确沟通敏捷转型目的尤为关键&#xff0c;团队成员只有清晰理解转型背后的原因和利益&#xff0c;才能降低对变化的…...