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

lvs集群中NAT模式

群集的含义

由多台主机构成,但对外表现为一个整体,只提供一个访问入口,相当于一台大型的计算机。

横向发展:放更多的服务器,有调度分配的问题。

垂直发展:升级单机的硬件设备,提高单个服务器自身功能。

集群类型:

 分布式系统

把任务分布下去,比如一个程序,分布在不同的电脑上组成,一台服务器不够,多台服务器处理同一任务。

集群与分布式区别

 

集群:同一个业务系统,部署在多台服务器上。集群中,每一台服务器实现的功能没有差别,数据和代码都是一样的。

分布式:一个业务被拆成多个子业务,或者本身就是不同的业务,部署在多台服务器上。分布式中,每一台服务器实现的功能是有差别的,数据和代码也是不一样的,分布式每台服务器功能加起来,才是完整的业务。

 集群设计原则

可扩展性—集群的横向扩展能力

可用性—无故障时间 (SLA service level agreement)

性能—访问响应时间

容量—单位时间内的最大并发吞吐量(C10K 并发问题)

负载均衡集群

按实现方式划分

 

基于工作的协议层次划分 

传输层(通用):DNAT 和 DPORT

 传输层(通用):DNAT 和 DPORT

LVS:(中型)

nginx:stream(小型)

haproxy:mode tcp(不常用)

应用层(专用):针对特定协议,常称为 proxy server

http:nginx, httpd, haproxy(mode http), ...

fastcgi:nginx, httpd, ...

mysql:mysql-proxy, mycat...   mycat:表示mysql读写分离

负载均衡集群架构

 

 lvs是内核里面的功能,可以用以下命令,在编译lvs时,可以看见开启或者关闭哪些模块的功能

grep -i -C 10 ipvs /boot/config-3.10.0-693.el7.x86_64

并且可以看见调度算法 

 

lvs集群中的术语

  • VS:代理服务器 Virtual Server,Director Server(DS), Dispatcher(调度器),Load Balancer(lvs服务器)

  • RS:真实服务器Real Server(lvs), upstream server(nginx), backend server(haproxy)(真实服务器)

  • CIP:客户机Client IP(客户机IP)

  • VIP:代理服务器外网ip Virtual serve IP VS外网的IP

  • DIP:代理服务器内网ipDirector IP VS内网的IP

  • RIP:真实服务器的ip Real server IP (真实IP)

 

 

 lvs工作模式

 

lvs-nat:

文字版流程讲解: 

lvs-nat:本质是多目标IP的DNAT,通过将请求报文中的目标地址和目标端口修改为某处的RS的RIP和PORT实现转发

(1)RIP和DIP应在同一个IP网络,且应使用私网地址;RS的网关要指向DIP

(2)请求报文和响应报文都必须经由lvs服务器转发,lvs服务器易于成为系统瓶颈

(3)支持端口映射,可修改请求报文的目标PORT

(4)VS必须是Linux系统,RS可以是任意OS系统

 LVS调度算法

分为静态算法和动态算法

静态算法:不管后端服务器状态

1、RR:roundrobin,轮询,较常用

2、WRR:Weighted RR,加权轮询,较常用

3、SH:Source Hashing,实现session sticky,源IP地址hash;将来自于同一个IP地址的请求始终发往第一次挑中的RS,从而实现会话绑定

4、DH:Destination Hashing;目标地址哈希,第一次轮询调度至RS,后续将发往同一个目标地址的请求始终转发至第一次挑中的RS,典型使用场景是正向代理缓存场景中的负载均衡,如: Web缓存

动态算法:根据一个参考值overhead ,来看服务器是否忙

ipvsadm 工具

NAT模式,LVS负载均衡部署

 

第一步 四台服务器全部关闭防火墙+防护

NFS服务器上配置:

 先下载nfs

 然后去新建两个共享目录

主配置文件里面的内容:

随后,分别切换到bennt   accp文件里面 去写一下文件内容

 

 然后进到两台真实服务器里面centos2 centos3

真实服务器nginx httpd都可以

centos2  centos3相同 步骤:

centos2 挂载acpp到主页面里面

centos 3 将bennt挂载到主页面

可以通过showmout -e 查看共享的目录

代理服务器配置

先下载ipvasdm 服务

 随后,因为代理服务器有内网跟外网,所以有两块网卡,在虚拟机里面添加一张网卡

 cpens33 到ens36      ens36就是代理服务器的外网(12.0.0.1)

然后修改一下ens33 跟ens36的配置文件,此时代理服务器为网关,ip地址要跟网关一样(因为自己就是网关)

ens33里面的配置:

ens36配置

 然后开启路由转发功能,如果不知道,可以用命令去查找

复制此行,然后进入到systcl.conf的 主配置文件里面

 然后查看一下 是否开启

如何开启ipvsadm服务。发现有错误 

 如何查看 journalctl -xe

 将文件导到这个目录下面 随后开启

ipvsadm  -A -t 12.0.0.1 (表示新建一个代理服务器  -t表示代理服务器外网的IP地址是12.0.0.1)

 这边代理服务器的内网网关是192.168.68.3  后面真实的服务器要通的话,必须要将两台网关改成代理服务器的ip地址 centos2 centos3 都要修改网关

 随后两台都要重启

然后在代理服务器上curl一下 代理服务器的外网  成功

相关文章:

lvs集群中NAT模式

群集的含义 由多台主机构成,但对外表现为一个整体,只提供一个访问入口,相当于一台大型的计算机。 横向发展:放更多的服务器,有调度分配的问题。 垂直发展:升级单机的硬件设备,提高单个服务器自身功能。 …...

FPGA——三速自适应以太网设计(2)GMII与RGMII接口

FPGA——以太网设计(2)GMII与RGMII 基础知识(1)GMII(2)RGMII(3)IDDR GMII设计转RGMII接口跨时钟传输模块 基础知识 (1)GMII GMII:发送端时钟由MAC端提供 下…...

【校园导航小程序】2.0版本 静态/云开发项目 升级日志

演示视频 【校园导航小程序】2.0版本 静态/云开发项目 演示 首页 重做了首页,界面更加高效和美观 校园指南页 新增了 “校园指南” 功能,可以搜索和浏览校园生活指南 地图页 ①弃用路线规划插件,改用SDK开发包。可以无阻通过审核并发布…...

深入揭秘Lucene:全面解析其原理与应用场景(二)

本系列文章简介: 本系列文章将深入揭秘Lucene,全面解析其原理与应用场景。我们将从Lucene的基本概念和核心组件开始,逐步介绍Lucene的索引原理、搜索算法以及性能优化策略。通过阅读本文,读者将会对Lucene的工作原理有更深入的了解…...

Java中synchronized关键字、ReentrantLock、volatile关键字是如何实现线程同步的。

在Java中,synchronized关键字、ReentrantLock和volatile关键字这三个是编程中常用于实现线程同步的机制,下面结合代码详细说明一下这三个关键字的用法。 1. synchronized关键字: synchronized关键字是Java语言提供的内置锁机制,…...

路由拦截器

路由拦截可以分为几种不同的类型,每种类型都有其特定的作用和适用场景。以下是常见的几种路由拦截类型及其用途: 身份验证拦截器: 作用: 检查用户是否已经登录或具有有效的身份认证,并根据认证状态决定是否允许用户访问…...

Springboot+vue的物业管理系统(有报告)。Javaee项目,springboot vue前后端分离项目。

演示视频: Springbootvue的物业管理系统(有报告)。Javaee项目,springboot vue前后端分离项目。 项目介绍: 本文设计了一个基于Springbootvue的物业管理系统,采用M(model)V&#xff…...

STM32的启动流程分析 和 一些底层控制的原理

阅读引言: 阅读本文之后, 你将对单片机, 甚至是嵌入式系统, 或者是传统的PC机系统的启动流程有一个大致的了解, 本文更加偏向于单片机的启动流程分析。 目录 一、基础知识 1.STM32系列的微控制器(mcu&…...

C#面:几种注释类型

三种常见的注释类型:单行注释、多行注释和 XML 注释。 单行注释: 以双斜线 // 开头,用于在一行中注释单个语句或代码块。单行注释会被编译器忽略,不会对程序的执行产生任何影响。 例如: // 这是一个单行注释 int a…...

#onenet网络请求http(GET,POST)

参考博文: POST: https://blog.csdn.net/qq_43350239/article/details/104361153 POST请求(用串口助手测试): POST /devices/1105985351/datapoints HTTP/1.1 api-key:AdbrV5kCRsKsRCfjboYOCVcF9FY Host:api.heclouds.com Con…...

零基础学习JS--基础篇--索引集合类

数组是由名称和索引引用的值构成的有序列表。 JavaScript 中没有明确的数组数据类型。但是,你可以使用预定义的 Array 对象及其方法来处理应用程序中的数组。Array 对象具有以各种方式操作数组的方法,例如连接、反转和排序。它有一个用于确定数组长度的…...

【硬件工程师面经整理25_AD】

文章目录 1 AD设计电路全流程2 ad和cadence区别-逻辑上的区别 1 AD设计电路全流程 软件AD or 模拟数字? 软件AD:AD设计电路全流程包括以下步骤:选择AD库和添加、画原理图、PCB布局、PCB布线、PCB打样、PCB加工 模拟数字: 需求分…...

神经网络的矢量化,训练与激活函数

我们现在再回到我们的神经元部分,来看我们如何用python进行正向传递。 单层的正向传递: 我们回到我们的线性回归的函数。我们每个神经元通过上述的方法,就可以得到我们的激发值,从而可以继续进行下一层。 我们用这个方法就可以得…...

3.7号freeRtoS

1. 串口通信 配置串口为异步通信 设置波特率,数据位,校验位,停止位,数据的方向 同步通信 在同步通信中,数据的传输是在发送端和接收端之间通过一个共享的时钟信号进行同步的。这意味着发送端和接收端的时钟需要保持…...

瑞芯微 | I2S-音频基础 -1

最近调试音频驱动,顺便整理学习了一下i2s、alsa相关知识,整理成了几篇文章,后续会陆续更新。 喜欢嵌入式、Li怒晓得老铁可以关注一口君账号。 1. 音频常用术语 名称含义ADC(Analog to Digit Conversion)模拟信号转换…...

Linux配置.bashrc文件导致各种命令(vim、sudo)失效。

Linux配置.bashrc文件导致各种命令(vim、sudo)失效。 起因是 nvcc-V一直报错:-bash:nvcc: command not found 踩坑记录:上网一查说是没有配置cuda的环境变量。于是去修改了bashrc文件,在最下面…...

Visual Studio 2022 Version 17.9 新功能

Visual Studio 2022 v17.9 为广大 C 开发者引入了一系列好用的新功能和改进优化。 内存布局 现在,你可以使用【内存布局,Memory Layout】功能以可视化的方式来查看对象,结构体及联合体的内存布局信息,这可比以前需要手动查看内存…...

ArrayList 和 LinkedList 的区别

ArrayList ArrayList 是基于动态数组实现的, 它使用一块连续的内存空间来存储元素,因此访问元素的速度非常快(时间复杂度为 O(1)), 但是,在插入或删除元素时,如果位置不在数组末尾&#xff0…...

VGG16-CF-VGG11实验报告

说明:VGG16和CF-VGG11是论文《A 3D Fluorescence Classification and Component Prediction Method Based on VGG Convolutional Neural Network and PARAFAC Analysis Method》使用的两种主要模型。其对应代码仓库提供了实验使用的数据集、平行因子分析结果和CNN模型。论文和…...

基于STC12C5A60S2系列1T 8051单片机的TM1638键盘数码管模块的按键扫描、数码管显示按键值、显示按键LED应用

基于STC12C5A60S2系列1T 8051单片机的TM1638键盘数码管模块的按键扫描、数码管显示按键值、显示按键LED应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍TM1638键盘…...

MedGemma 1.5真实案例:‘腹痛+发热+白细胞升高’的鉴别诊断思维链输出

MedGemma 1.5真实案例:‘腹痛发热白细胞升高’的鉴别诊断思维链输出 1. 案例背景与患者情况 今天我们来分析一个真实的临床案例,展示MedGemma 1.5在医疗诊断推理中的强大能力。这个案例涉及一位虚拟患者,主要症状包括: 腹痛&am…...

在Vmware嵌套的CentOS 7里搭KVM:从虚拟化检测到桥接网络避坑全记录

在VMware嵌套的CentOS 7中部署KVM:从虚拟化检测到网络配置实战指南 当我们需要在有限硬件资源下构建复杂的虚拟化测试环境时,嵌套虚拟化技术提供了绝佳的解决方案。本文将带您深入探索如何在VMware Workstation创建的CentOS 7虚拟机中,成功部…...

PZEM-004T v3.0 功率监测仪:5分钟快速上手完整指南

PZEM-004T v3.0 功率监测仪:5分钟快速上手完整指南 【免费下载链接】PZEM-004T-v30 Arduino library for the Updated PZEM-004T v3.0 Power and Energy meter 项目地址: https://gitcode.com/gh_mirrors/pz/PZEM-004T-v30 PZEM-004T v3.0 是一个专为Arduino…...

w w w w w w w w w w w w w

w w w w w w w w w w w...

SVG 文本:设计与实现详解

SVG 文本:设计与实现详解 引言 SVG(可缩放矢量图形)文本是网页设计中常用的元素之一,它允许开发者创建可缩放的文本,并具有丰富的样式和动画效果。本文将详细介绍SVG文本的设计与实现,包括其基本概念、使用方法以及在实际项目中的应用。 SVG文本的基本概念 1. SVG简介…...

【会议征稿通知 | 西华大学主办 | IEEE出版 | EI 、Scopus稳定检索】第五届新能源系统与电力工程国际学术会议(NESP 2026)

第五届新能源系统与电力工程国际学术会议(NESP 2026) 2026 5th International Conference on New Energy System and Power Engineering 2026年5月22-24日 | 中国-成都 大会官网:www.icnesp.com 截稿时间:见官网&…...

Python基础-[面试]-救急知识速背

基础语法(15题)【基础语法】 问题:Python代码块是通过什么方式划分的? 答案:通过缩进(通常4个空格)划分代码块。【基础语法】 问题:Python中单行注释使用什么符号? 答案&…...

基于YOLO26的六类犬种识别检测系统:mAP50达到0.895,推理速度2.4ms/张(项目源码+数据集+模型权重+UI界面+python+深度学习+远程环境部署)

摘要 本系统基于YOLO26目标检测算法,构建了一个面向六类常见犬种的智能识别检测模型。研究涵盖Beagle、bullDog、corgi、goldenRetriever、husky和pomeranian六个犬种类别,总数据集规模为1257张标注图像,其中训练集880张、验证集251张、测试…...

CSS如何制作下拉菜单弹性展开_利用transform-origin

下拉菜单用 transform: scaleY() 展开时从顶部塌陷,是因为默认 transform-origin 为 50% 50%,需设为 top center 实现从顶向下自然展开;配合 cubic-bezier 缓动、will-change 优化及 pointer-events 控制确保跨端稳定。下拉菜单用 transform:…...

别再只会用NMOS了!PMOS高侧开关搭配稳压管钳位的保姆级配置教程(附电阻计算)

PMOS高侧开关实战指南:从稳压管钳位到电阻计算的完整设计 引言 在电源开关设计中,PMOS高侧驱动方案常被工程师们忽视——大多数人更熟悉NMOS低侧开关的简单用法。但当我们面对需要完全断开电源、避免地线浮空或简化电路结构的场景时,PMOS高侧…...