LVS集群-NAT模式
集群的概念:
集群:nginx四层和七层+动静分离
集群标准意义上的概念:为解决特定问题将多个计算机组合起来形成一个单系统
集群的目的就是为了解决系统的性能瓶颈。
垂直扩展:向上扩展,增加单个机器的性能,升级硬件,硬件升级是有瓶颈的
水平扩展:向外扩展,增加设备,并行的运行多个服务,通过网络和算法来调度服务分配的问题
集群的类型:
- 负载均衡集群:LB load blance 多个主机组成,每个主机只承担一部分的访问请求,靠负载均衡算来来实现
- 高可用集群:HA high availiablity 避免SPOF(single point failure)单点故障,系统中只有一部分组件出现故障,可以保障整个系统继续运行
主从---同步(某些特定的服务需要)---负载均衡
HPC:high-performance computing快速转发,快速响应。
集群的可靠性指标:
MTBF:mean time between failure 系统在正常运行期间无故障的平均时间,一般用小时或者天数来表示,MTBF值越高,系统的可靠性越高,出现的概率就越小
MTTR:系统从发生故障到恢复正常运行的平均时间,一般用于小时和天数,MTTR值越小,说明系统恢复故障的能力越强
A:系统可靠性指标A值越高越好
A=MTBF/(MTBF+MTTR)
停机时间:
计划内停机:指的是预定时间内的维护和检修时间
计划外停机:运维人员主要关注的就是计划外
发版期:
设计集群时需要考虑的一些原则:
- 可扩展性:集群要有随时可以添加或者删除设备的能力。 动态的扩缩容
- 可靠性:集群当中如果有节点发生故障,可以快速检测并且自动切换
- 负载均衡:合理分配每台服务器的负载,避免单个节点过载,影响整体性能
- 可维护性:要能够方便的进行配置部署,维护,监控,降低成本。
- 安全性:防止恶意攻击,以及数据泄露,数据丢失
- 易用性:相关的工作人员可以放便的进入集群,能够快速的开发,部署,测试等等
Lvs: Linux virtual server 是一个部署在Linux系统通过内核层面实现负载均衡的软件
开发者:章文嵩
主要作用:多个后端服务器形成一个高可用,高性能负载均衡的高性集群,通过负载均衡的算法将客户端的请求发送到后端服务器
阿里的SLB server load balance基于lvs+keepalived实现
Lvs集群当中的术语:
Vs(virtual server)lvs服务的逻辑名字,外部访问lvs集群提供的一个虚拟IP地址和端口
DS:Director server : lvs集群当中的主服务器,也是调度器,是整个lvs集群的核心,接受客户端的请求转发到后端RS
RS:real server lvs的后端是服务器的IP,接受到DS的请求之后,返回响应结果
CIP:client ip 客户端ip负载
VIP : virtual ip 对外提供访问的统一的虚拟IP地址
DIP:DIrector ip 调度器在lvs内部使用的IP地址,用于真实服务器进行通信
RIP:后端真实服务器的IP地址
Lvs访问的大致流程:
- 客户端访问都是访问vip
- DS接受到请求,根据调度算法选择好后端服务器(RS)
请发送给rs
- RS处理请求并将响应发送到DS
- DS把RS的响应包装成自己响应,发送到客户端
客户端既不知道请求的真实服务器,也不知道响应的服务器是谁
Lvs的负载均衡方式:
NAT DR TUN
其中NAT和DR是最常用的两中方式
NAT模式:
NAT模式是最常用的负载方式之一
NAT的作用就是地址转换
Nat模式工作的核心原理:
- 在调度器上配置网卡,一个指内,一个指外
- 配置一个可以和公网进行通信的vip
- 配置转发策略,如果访问vip,就会把请求的数据包转发到后台的RS
请求的格式:报文。调度器会修改请求的目标IP地址和端口
- RS处理完请求之后响应客户端,先到调度器,调度器进行转换,把内网地址转换成外网地址,响应给客户
192.168.233.30:80------调度器-----nat转换-------12.0.0.1:80-----客户端
数据请求进入调度器的请求报文IP地址的修改
数据响应进入调度器,根据nat配置进行地址转换
调度器的内网IP地址和真实服务器的IP要在同一网段
NAT模式:
Nat:对于客户端来说请求地址始终不变,客户端不需要修改任何配置,转发由调度器通过算法来完成,后端服务器只管接受响应,也不需要修改任何配置
特点:性能损失和单点故障
DR模式:
DR:直接路由模式,请求由调度器完成,但是响应客户端由真实服务器直接响应,不需要通过调度器
好处是:性能高,而且可以配置vip地址的高可用,不存在单点故障
TUN模式:
Tun:隧道协议把请求转发后端服务器,需要在后端服务器配置隧道协议
核心:请求VPN地址
如何设置lvs:
Ipvsadm工具:管理内核模块的命令行工具,可用于配置和管理lvs集群
-A:添加虚拟服务器
-D:删除整个虚拟服务器
-s:制定负载调度的算法:
静态调度:
rr:轮循
wrr:加权轮询
dh:目的地址hash
根据IP地址查找静态hash表,获取需要真实的RS的地址
Sh源地址hash
动态调度:
lc:最小连接数调度
wlc:加权最小连接数调度
权重高的,转发的就多,为了额避免性能瓶颈,再跟上最小连接数分配,可以把请求往连接数较小的服务器继续转发
Iblc:基于地址的最小连接数调度
将来自同一个目的地地址的请求分配给RS,如果这台服务器尚未满负荷,就会把请求分配给连接数最小的RS,而且在下一次转发时会优先考虑这台RS
-a:添加真实的服务器
-d:删除真实的服务器
-t:指定vip地址的段口号
-r:指定RIP的端口号
-m:表示使用的nat模式
-g:表示使用的DR模式
-i:表示使用的TUN模式
-w:设置真实的服务器的权重
-p 60:设置连接保持的时间60秒(默认不带)
-ln:以数字和列表的形状查看lvs的配置信息
Nat模式的部署方式:
四台服务器:
负载调度器:配置双网卡:20.0.0.51(内网)12.0.0.1(ens36)
二台后端web真实服务器:20.0.0.52 20.0.0.53
一台NFS共享服务器:20.0.0.54
客户端54
架构图:
先来配置共享服务54
配置web服务器52,53 两台真实服务器也安装一下NFS共享
52服务器:
53服务器:
配置调度器
添加一个网卡设备
复制网卡
改ifcfg-36的网卡信息
配置交地址转换策略
安装ipvsadm*
重新添加节点服务器
修该web服务机的网卡
重新添加节点服务器
相关文章:

LVS集群-NAT模式
集群的概念: 集群:nginx四层和七层动静分离 集群标准意义上的概念:为解决特定问题将多个计算机组合起来形成一个单系统 集群的目的就是为了解决系统的性能瓶颈。 垂直扩展:向上扩展,增加单个机器的性能,…...

微服务技术导学
文章目录 微服务结构认识微服务技术栈 微服务结构 技术: 解决异常定位: 持续集成,解决自动化的部署: 总结如下: 认识微服务 微服务演变: 技术栈 SpringCloud与SpringBoot版本对应关系...

p5.js 开发点彩画派的绘画工具
本文简介 点赞 关注 收藏 学会了 这几天在整理书柜时看到这套书,看到梵高,想起他的点彩画。 想到点彩画派,不得不提的一个画家叫乔治皮埃尔秀拉。据说梵高也模仿过他的画作。 我引用一下维基百科对点彩画派的解析: 点彩画派&…...

Java工具库——Commons IO的50个常用方法
工具库介绍 Commons IO(Apache Commons IO)是一个广泛用于 Java 开发的开源工具库,由Apache软件基金会维护和支持。这个库旨在简化文件和流操作,提供了各种实用工具类和方法,以便更轻松地进行输入输出操作。以下是 Com…...
Git: 仓库clone和用户配置
git clone 两种方式clone远程仓库到本地。 通过ssh 命令格式: git clone gitxxxxxx.git使用这种方法需要提前创建ssh秘钥。 首先打开一个git控制台,输入命令 ssh-keygen -t ed25519 -C “xxxxxxxxxx.com”输入命令后需要点击四次回车,其…...

构建外卖小程序:技术要点和实际代码
1. 前端开发 前端开发涉及用户界面设计和用户交互。HTML、CSS 和 JavaScript 是构建外卖小程序界面的主要技术。 <!-- HTML 结构示例 --> <header><h1>外卖小程序</h1><!-- 其他导航元素 --> </header> <main><!-- 菜单显示 -…...
ubuntu安装配置svn
目录 简介安装SVN 启动模式方式1:单库svnserve方式方式2:多库svnserve方式 SVN 创建版本库1.svn 服务配置文件 svnserve.conf2.用户名口令文件 passwd3.权限配置文件4.多库方式运行 SVN 检出操作SVN 解决冲突SVN 提交操作SVN 版本回退SVN 查看历史信息1.svn log2.svn diff3.svn…...

『Jmeter入门万字长文』 | 从环境搭建、脚本设计、执行步骤到生成监控报告完整过程
『Jmeter入门万字长文』 | 从环境搭建、脚本设计、执行步骤到生成监控报告完整过程 1 Jmeter安装1.1 下载安装1.2 Jmeter汉化1.2.1 临时修改1.2.2 永久修改 1.3 验证环境 2 测试对象2.1 测试对象说明2.2 测试对象安装2.2.1 下载安装2.2.2 启动测试对象服务2.2.3 访问测试对象2.…...

Unity C#中LuaTable、LuaArrayTable、LuaDictTable中数据的增删改查
LuaTable、LuaArrayTable、LuaDictTable中数据的增删改查 介绍Lua表lua表初始化lua移除引用lua中向表中添加数据lua中表中移除数据lua表中连接数据lua表中数据排序获取lua表长度获取表中最大值 UnityC#中LuaTableUnityC#中LuaArrayTable、LuaDictTable、LuaDictTable<K,V>…...
Spring常见面试题
https://blog.csdn.net/a745233700/article/details/80959716?ops_request_misc%257B%2522request%255Fid%2522%253A%2522169847982516800213061720%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id169847982516800213061720&biz_id0&…...

通过Vue自带服务器实现Ajax请求跨域(vue-cli)
通过Vue自带服务器实现Ajax请求跨域(vue-cli) 跨域 原理:从A页面访问到B页面,并且要获取到B页面上的数据,而两个页面所在的端口、协议和域名中哪怕有一个不对等,那么这种行为就叫跨域。注意:类…...
Vue2-计算属性的用法
题记 vue2计算属性的用法 反转字符串 <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>实例</title> <script src"https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script> </hea…...
SM3加密udf
SM3加密udf maven xml <dependencies> <!-- 配置日志 --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.5</version> </dep…...

ce从初阶到大牛(两台主机免密登录)
一、配置ssh远程连接 实现两台linux主机之间通过公钥验证能够互相实现免密登陆 1.确认服务程序是否安装 rpm -qa | grep ssh 2.是否启动 ps -aux | grep ssh 3.生成非对称公钥 ssh-keygen -t rsa 4.公钥发送到客户端 cd /root/.ssh/ ssh-copy-id root192.168.170.134 因为…...

CS224W2.3——传统基于特征的方法(图层级特征)
前两篇中我们讨论了节点层级的特征表示、边层级的特征表示: CS224W2.1——传统基于特征的方法(节点层级特征)CS224W2.2——传统基于特征的方法(边层级特征) 在这篇中,我们将重点从整个图中提取特征。换句话说,我们想要描述整个图结构的特征…...

【CSS】包含块
CSS规范中的包含块 包含块的内容: 元素的尺寸和位置,会受它的包含块所影响。 对于一些属性,例如 width, height, padding, margin,绝对定位元素的偏移值(比如 position 被设置为 absolute 或 fixed)&…...

[SpringCloud] Nacos 简介
目录 一、Nacos,启动! 1、安装 Nacos 2、运行 Nacos 3、Nacos 服务注册 二、Nacos 服务多级存储模型 1、服务跨集群分配 2、NacosRule 负载均衡(优先本地) 3、服务实例的权重设置 4、环境隔离 三、Nacos 注册中心细节分…...
TypeScript - 字符串的字面类型
啥是字面量类型 字面量类型,是限制了一个字符串变量的取值范围只能某几个固定字符串中的一个。 我感觉 与枚举类型有异曲同工之妙。 字符串字面量类型有啥用 没啥用。 就是来限制字符串变量不能随便赋值的。 定义一个我看看 让你读书,但是只有四本书可以…...

CRM客户管理系统源码 带移动端APP+H5+小程序
CRM客户管理系统源码 带移动端APPH5小程序 开发环境: thinkphp mysql 功能介绍: 1、 办公管理:审批管理、工作报告、日程管理、办公审批、公告管理 2、 客户管理:我的客户、客户列表、成交客户、行业类别、预查、地区列表、客户状态、客…...

Mac版好用的Git客户端 Fork 免激活
Fork是一款强大的Git客户端软件,在Mac和Windows操作系统上都可以使用。汇集了众多先进的功能和工具,可以帮助用户更方便地管理和控制Git仓库。 Fork的界面简洁直观,易于使用。它提供了许多高级的Git功能,如分支管理、合并、提交、…...

利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...

Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...

DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...
Qt Http Server模块功能及架构
Qt Http Server 是 Qt 6.0 中引入的一个新模块,它提供了一个轻量级的 HTTP 服务器实现,主要用于构建基于 HTTP 的应用程序和服务。 功能介绍: 主要功能 HTTP服务器功能: 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)
🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

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

Android15默认授权浮窗权限
我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

Linux --进程控制
本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)
在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马(服务器方面的)的原理,连接,以及各种木马及连接工具的分享 文件木马:https://w…...