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

LVS理论知识

目录

1.描述以及工作原理

1.什么是LVS

2.LVS调度算法

1.静态调度算法

1.轮询RR

2.加权轮询WRR

3.目标地址hash---DH

4.源地址hash---SH

2.动态调度算法

1.LC最少连接

2.wlc加权最少连接

3.sed最少期望延迟

4.nq不排队调度算法

5.lblc基于本地最少连接

6.lnlcr带复制的基于本地最少连接

3.LVS的工作原理

2.组成及术语

1.组成

1.ipvs

2.ipvsadm

2.术语

3.三种工作模式 

1.描述以及工作原理

1.什么是LVS

  通过Linux达到负载均衡技术和Linux操作系统实现一个高性能可用的Linux服务集群,具有良好的可靠性,可延展性和可操作性,从而以低廉的成本实现最优的性能,LVS是一个实现负载均衡集群开源软件项目,LVS从逻辑上可分为调度层、server集群层和共享存储。

2.LVS调度算法

1.静态调度算法
1.轮询RR

均等地对待每一台服务器。

2.加权轮询WRR

根据真实服务器的不同处理能力来调度访问请求。

3.目标地址hash---DH

针对目标IP地址的负载均衡。

4.源地址hash---SH
算法正好与目标地址散列调度算法相反,它根据请求的源 IP 地址,作 为散列键(Hash Key )从静态分配的散列表找出对应的服务器,若 该服务器是 可用的且未超载,将请求发送到该服务器,否则返回 空。
2.动态调度算法
1.LC最少连接
调度器通过 " 最少连接 " 调度算法动态地将网络请求调度到已建立的链 接数最少的服务器上。如果集群系统的真实服务器具有相近的系统性能,采用" 最小连接 " 调度算法可以较好地均衡负载。
2.wlc加权最少连接
在集群系统中的服务器性能差异较大的情况下,调度器采用 " 加权最少链接" 调度算法优化负载均衡性能,具有较高权值的服务器将承受较大比例的活动连接负载。调度器可以自动问询真实服务器的负载情 况,并动态地调整其权值。
3.sed最少期望延迟
基于 wlc 算法,举例说明: ABC 三台机器分别权重 123 ,连接数也分别是123 name 如果使用 WLC 算法的话一个新请求进入时他可能会分给ABC 中任意一个,使用 SED 算法后会进行这样一个运算
A:(1+1)/2
B:(1+2)/2
C:(1+3)/3
根据运算结果,把连接交给 C
4.nq不排队调度算法
无需列队,如果有台 realserver 的连接数 =0 就直接分配过去,不需要进行sed 运算。
5.lblc基于本地最少连接
6.lnlcr带复制的基于本地最少连接

3.LVS的工作原理

1. 当用户向负载均衡调度器(director server)发起请求,调度器将请求发往内核空间。

2. prerouting链首先会接受到用户请求,判断目标ip确定是本机ip,将数据包发往input链。

3. IPVS是工作在input链上的,当用户请求到达input时,ipvs会将用户请求和自己定义好的集群服务器进行比对,如果用户请求就是定义的集群服务,那么此时ipvs会强行修改数据包里的目标ip地址以及端口,并将新的数据包发往POSTROUTING链。

4. POSTROUTING链接收到数据包后,发现目标ip地址刚好是自己的后端服务器,那么通过选路,将数据包最终发送给后端服务器。

2.组成及术语

1.组成

1.ipvs

ip virtual server,一段代码工作在内核空间,ipvs,是真正生效实现调度的代码(累死nginx中的proxy_pass)

2.ipvsadm

另一段是工作在用户空间,ipvsadm,负责为ipvs内核框架编写规则,定义谁是集群服务,谁是后端真正的服务器(real server)类似nginx中的upstrean

2.术语

1. DS DIrector Server 前端负责均衡节点(负载均衡服务器)

2. RS real server 后端真实工作服务器(web服务器)

3. vip向外部直接面向用户请求,作为用户请求的目标ip地址(负载均衡的ip地址,提供给用户)

4. DIP Director Server Ip 和内部主机通讯的ip地址(负责与Real Server交互的内部Ip)

5. RIP Real Server Ip 后端服务器ip地址

6. CIP client IP 访问客户端ip地址

3.三种工作模式 

1. *LVS-NAT模式

2. *LVS-DR模式

3. Lvs-Tun模式(隧道模式)

相关文章:

LVS理论知识

目录 1.描述以及工作原理 1.什么是LVS 2.LVS调度算法 1.静态调度算法 1.轮询RR 2.加权轮询WRR 3.目标地址hash---DH 4.源地址hash---SH 2.动态调度算法 1.LC最少连接 2.wlc加权最少连接 3.sed最少期望延迟 4.nq不排队调度算法 5.lblc基于本地最少连接 6.lnlcr带…...

uniapp接口请求this.$request

代码示例: createPhoto(url) {this.$request({url: /emp/gallery-photo/create,//后端接口method: post,//请求方法header: {//请求头tenant-id: 1,},data: {//请求参数galleryId: this.albumId,empUserId: this.empUserId,"url": url,}}).then((res) &…...

vulnhub靶机 W34KN3SS(渗透测试详解)

一、靶机信息收集 1、靶机下载地址 https://download.vulnhub.com/w34kn3ss/W34KN3SS.ova 2、扫描靶机IP 3、探测靶机端口、主机、服务版本信息 nmap -sS -sV -A -p- 192.168.31.160 4、进行目录扫描 二、web渗透测试 1、访问靶机IP 没什么发现 2、进行目录拼接访问 拼接…...

2024年8月16日嵌入式学习

今日复习信号量的知识点和学习了进程间通信和管道 总结信息量: 共享进程资源 方便 线程 抢占公共资源 带来的问题 1. 互斥访问 需要互斥锁 来保障 原子性操作 使 操作过程 完整 互斥锁: a.初始化 锁 b.加锁 //使用资源之前 …...

vue+ckEditor5 复制粘贴wold文字+图片并保存格式

第一步在vue2项目下安装 npm install --save ckeditor/ckeditor5-build-decoupled-document 第二 项目下新建一个plugins的文件夹将这个包ckeditor5-build-classic放入 (包在页面最上方 有个下载按钮 可以下载) 刚开始时 ckeditor5-build-classic文件…...

redis列表若干记录

2、列表 ziplist ziplist参数 entry结构 entry-data:节点存储的元素prelen:记录前驱节点长度encoding:当前节点编码格式encoding encoding属性 使用多个子节点存储节点元素长度,这种多字节数据存储在计算机内存中或者进行网络传输的时的字节…...

固态硬盘用mbr还是GPT?固态硬盘分区类型用mbr还是GPT分析

固态硬盘用mbr还是GPT?答:固态硬盘分区类型用mbr还是gpt其实取决于你对分区要求及引导模式。我们知道现在的引导模式有uefi和legacy两种引导模式,如果采用的是uefi引导模式,分区类型对应的就是gpt分区(guid),如果引导模…...

http/sse/websocket 三大协议演化历史以及 sse协议下 node.js express 服务实现打字机案例 负载均衡下的广播实现机制

背景 自从2022年底chatgpt上线后,sse就进入了大众的视野,之前是谁知道这玩意是什么?但是打字机的效果看起来是真的很不错,一度吸引了很多人的趋之若鹜,当然了这个东西的确挺好用,而且实现很简单&#xff0…...

智能时代新宠:2024年录音转文字软件

无论是学生群体记录课堂笔记,职场人士整理会议纪要,还是自媒体创作者捕捉灵感火花,录音转文字软件都以其独特的便利性和高效性赢得了广泛的好评。今天,就让我们一起探索那些深受大家喜爱的录音转文字工具吧。 1.365在线转文字 链…...

【Python机器学习】树回归——使用Python的tkinter库创建GUI

机器学习给我们提供了一些强大的工具,能从未知数据中抽取出有用的信息。因此,能否这些信息以易于人们理解的方式呈现十分重要。如果人们可以直接与算法和数据交互,将可以比较轻松的进行解释。其中一个能够同时支持数据呈现和用户交互的方式就…...

谷歌浏览器网页底图设置为全黑

输入网址:chrome://flags/ 搜索dark,选择Enabled,重启浏览器即可...

Unity | AmplifyShaderEditor插件基础(第二集:模版说明)

目录 一、前言 二、核心模版和URP模版 1.区别介绍 2.自己的模版 三、输出节点 1.界面 2.打开OutPut 3.ShderType 4.ShaderName 5.Shader大块内容 6.修改内容 四、预告 一、前言 内容全部基于以下链接基础以上讲的。 Unity | Shader基础知识(什么是shader…...

【Linux入门】Linux常见指令

目录 前言 一、Linux基本指令 1.ls指令 2.pwd命令 3.cd 指令 4.touch指令 5.mkdir指令 6.rmdir指令 && rm 指令 7.man指令 8.cp指令 9.mv指令 10.cat 11.date 12.top 13.shutdown-关机 14.重要的几个热键 二、Linux扩展指令 总结 前言 Linux指令是在…...

startData

某音startData 记得加入学习群: python爬虫&js逆向3 714283180...

CV每日论文--2024.7.24

1 、AutoAD-Zero: A Training-Free Framework for Zero-Shot Audio Description 中文标题:T2V-CompBench:组合文本到视频生成的综合基准AutoAD-Zero:零样本音频描述的免训练框架 简介:我们的目标是以无需训练的方式为电影和电视剧…...

大语言模型的简易可扩展增量预训练策略

前言 原论文:Simple and Scalable Strategies to Continually Pre-train Large Language Models翻译文件已整理至Github项目Some-Paper-CN,欢迎大家Star! 摘要 大语言模型(LLMs)通常需要在数十亿个tokens上进行预训…...

python学习之异常

在编程中,异常是指程序运行时发生的错误或异常情况,它们可能会打断程序的正常流程。不同的编程语言定义了自己的一套异常类型。在Python中,异常是基于类和对象的,所有的异常都继承自内置的BaseException类。 以下是Python中一些常…...

多张图像实现全景无痕拼接操作

目录 ​编辑 1,图像拼接的作用 2,实现步骤 3,效果展示 1,图像拼接的作用 视觉扩展:通过拼接,可以将多个视角的图像合并,创造出比单张图片更广阔的视野。 数据整合:在科学研究和地…...

在阿里云ecs上构建一个WordPress博客网站

1、购买ECS 使用抢占式实例,RDS 使用按量付费 2、在安全组的出入方向添加80端口 3、购买一个公网IP绑定该ecs 4、云数据库rds选择按量付费 5、创建一个名为test_user的普通账号 6、创建数据库 7、设置RDS实例白名单 8、远程登录ecs实例 9、安装apache服务及其扩展包…...

安卓应用开发学习:查看手机传感器信息

一、引言 在手机app的开发中经常会用到手机的传感器,在《Android App 开发进阶与项目实战》一书的第10章就介绍了传感器的一些功能和用法。要想使用传感器,首先得知道手机具备哪些传感器。书中有传感器类型取值的说明,并提供了一个查看手机传…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异&#xff…...

跨链模式:多链互操作架构与性能扩展方案

跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层&#xf…...

C# SqlSugar:依赖注入与仓储模式实践

C# SqlSugar:依赖注入与仓储模式实践 在 C# 的应用开发中,数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护,许多开发者会选择成熟的 ORM(对象关系映射)框架,SqlSugar 就是其中备受…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)

引言 在人工智能飞速发展的今天,大语言模型(Large Language Models, LLMs)已成为技术领域的焦点。从智能写作到代码生成,LLM 的应用场景不断扩展,深刻改变了我们的工作和生活方式。然而,理解这些模型的内部…...

Git常用命令完全指南:从入门到精通

Git常用命令完全指南:从入门到精通 一、基础配置命令 1. 用户信息配置 # 设置全局用户名 git config --global user.name "你的名字"# 设置全局邮箱 git config --global user.email "你的邮箱example.com"# 查看所有配置 git config --list…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现企业微信功能

1. 开发环境准备 ​​安装DevEco Studio 3.1​​: 从华为开发者官网下载最新版DevEco Studio安装HarmonyOS 5.0 SDK ​​项目配置​​: // module.json5 {"module": {"requestPermissions": [{"name": "ohos.permis…...

django blank 与 null的区别

1.blank blank控制表单验证时是否允许字段为空 2.null null控制数据库层面是否为空 但是,要注意以下几点: Django的表单验证与null无关:null参数控制的是数据库层面字段是否可以为NULL,而blank参数控制的是Django表单验证时字…...

QT开发技术【ffmpeg + QAudioOutput】音乐播放器

一、 介绍 使用ffmpeg 4.2.2 在数字化浪潮席卷全球的当下,音视频内容犹如璀璨繁星,点亮了人们的生活与工作。从短视频平台上令人捧腹的搞笑视频,到在线课堂中知识渊博的专家授课,再到影视平台上扣人心弦的高清大片,音…...