LVS集群及其它的NAT模式
1.lvs集群作用:是linux的内核层面实现负载均衡的软件;将多个后端服务器组成一个高可用、高性能的服务器的集群,通过负载均衡的算法将客户端的请求分发到后端的服务器上,通过这种方式实现高可用和负载均衡。
2.集群和分布式:主要应对系统的扩展方式
垂直扩展:以前计算机是向上扩张,起到增强计算机的性能,但是由于计算机本身设备的限制,使硬件本身的性能出现瓶颈。
水平扩展:现在计算机是向外扩张,增加设备,并行的运行多个服务,依靠网络解决内部通信的问题,形成cluster集群。
集群:为了解决某个特定的问题将多台计算机组合起来的单个系统。
3.集群的三种类型:
LB:负载均衡集群,多个主机组成,每个主机只承担一部分的访问请求。
HA:高可用,在设计系统时,采取一定的措施确保系统当中某一组件或者部分出现故障,整个系统依然可以正常的运行,为了维护整个系统的可用性,可靠性,容错性。
HPC:高性能集群,对响应的时间、处理能力要求更高。
4.系统可靠性指标:(都是以小时为单位)
MTBF(mean time between failure):平均无故障时间
MTTR(Mean Time Resotration repair):平均故障恢复时间
A=MTBF/(MTBF+MTTR):A指的是系统可用性的度量,A指标一般在0-1之间,越接近0表示系统越不可用,越接近1系统越可用,所以工作中A指标要无限接近1,一般接近98%-99%为合格。
计划内的时间可以忽略不记,如停机时间,但是现在也统计在内
计划外的故障时间,从故障发生到故障解决的总时间,尤其是运维,计划外时间是我们必须关注的一个指标。-----------当天事必须当天解决,没有解决之前,人是不可以离开的,解决完之后必须生成报告备案。
5.lvs适用场景:
小集群不需要使用lvs,大集群使用lvs。
6.lvs集群中的术语:
VS:lvs服务的逻辑名称,也就是我们外部访问lvs时使用的IP地址和端口。
DS:lvs的主服务器,也就是调度器,相当于nginx的代理服务器,是lvs集群的核心,调度器就是用来接受客户端的请求转发到后端的服务器。
RS:lvs集群中的真实服务器,后端服务器,用来接受DS调度器转发来的请求,并且响应结果。
CIP:客户端的IP地址,也是发起请求的客户端地址。
VIP:lvs集群使用的ip地址,对外提供集群访问的虚拟ip地址。
DIP:调度器在集群当中的地址,用来和RS进行通信用的。
RIP:后端服务器在集群中的IP地址。
7.lvs的工作方式:(常用的模式是NAT及DR模式)
NAT模式:由DS调度器响应客户端,适用小集群
DR模式(直接路由模式):真实服务器直接响应客户端,适用大集群
TUN:隧道模式
NAT模式的特点:地址转换,在nat模式下,lvs会将来自客户端的请求报文中的目标IP地址和端口修改为lvs内部的IP地址和端口,然后把请求转发到后端服务器,响应之后的结果返回客户端的过程中,响应报文也要经过lvs处理,把目标ip和端口修改成客户端的IP地址和端口。优点:对于客户端来说,请求的目标地址始终不变,客户端的配置不需要做特殊修改,只是调度器在对ip和端口进行转换,后端的服务器也不需要更改任何配置;缺点:性能损失,请求和响应都需要做地址转换,影响性能,nat模式只有一个调度器,调度器故障整个集群就不能正常工作。
内网(RS1和RS2)--------外网 转换的源ip
外网(客户机)--------内网 转换的是目的ip
8.lvs的工具:用来配置和管理lvs集群的工具
-A:添加虚拟服务器vip
-D:删除虚拟机服务器地址
-s:指定负载的调度算法 (rr默认轮巡,wrr加权轮巡,最小连接lc,加权最小连接wlc)
-a:添加真实服务器
-d:删除真实服务器
-t:指定vip的地址和端口
-r:指定rip的地址和端口
-m:使用NAT模式
-g:使用DR模式
-i:使用隧道模式
-w:设置权重
-p:设置连接保持时间
-l:列表查看
-n:数字化展示
二、NAT模式的部署方法:
192.168.127.10:设置为调度器
RS1:192.168.127.20
RS2:192.168.127.30
192.168.127.40:客户端
1.关闭所有的防火墙及安全机制: systemctl stop firewalld
setenforce 0
2.给调度器增加一个网卡:
3.给调度器安装ipvsadm的管理工具:yum -y install ipvsadm* -y
4.配置调度器的网关
首先把ens33内容复制到ens36
然后修改网关vim ifcfg-ens33 及 vim ifcfg-ens36:用调度器本机的IP地址做网关
VIP:lvs集群使用的ip地址,对外提供集群访问的虚拟ip地址。
5.设置RS1及RS2的网关
RS1
设置完之后记得刷新
再index.html内修改RS1和RS2访问时的提示页面:
6.回到调度器做地址转换
7.配置调度器的ipvsadm
-A:添加虚拟服务器vip -s:指定负载的调度算法
8.开启调度器路由转发的功能
9.配置客户端192.168.127.40
10.附加: 如果设置完策略重启后出现VIP虚拟IP和配置的不一致,只能删除全部策略重新编辑。
11. 附加:ipvsadm加权轮巡的算法 当客户端访问调度器curl 12.0.0.1时RS1会明显增多
相关文章:

LVS集群及其它的NAT模式
1.lvs集群作用:是linux的内核层面实现负载均衡的软件;将多个后端服务器组成一个高可用、高性能的服务器的集群,通过负载均衡的算法将客户端的请求分发到后端的服务器上,通过这种方式实现高可用和负载均衡。 2.集群和分布式&#…...

【RNN练习】天气预测
🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 一、环境及数据准备 1. 我的环境 语言环境:Python3.11.9编译器:Jupyter notebook深度学习框架:TensorFlow 2.15.0 2. 导…...
prompt第四讲-fewshot
文章目录 前提回顾FewShotPromptTemplateforamt格式化 前提回顾 前面已经实现了一个翻译助手了[prompt第三讲-PromptTemplate],prompt模板设计中,有说明、案例、和实际的问题 # -*- coding: utf-8 -*- """ Time : 2024/7/8 …...

StarRocks分布式元数据源码解析
1. 支持元数据表 https://github.com/StarRocks/starrocks/pull/44276/files 核心类:LogicalIcebergMetadataTable,Iceberg元数据表,将元数据的各个字段做成表的列,后期可以通过sql操作从元数据获取字段,这个表的组成…...

阅读笔记——《Fuzz4All: Universal Fuzzing with Large Language Models》
【参考文献】Xia C S, Paltenghi M, Le Tian J, et al. Fuzz4all: Universal fuzzing with large language models[C]//Proceedings of the IEEE/ACM 46th International Conference on Software Engineering. 2024: 1-13.【注】本文仅为作者个人学习笔记,如有冒犯&…...
【C++】使用gtest做单元测试框架写单元测试
本文主要介绍在将gtest框架引入到项目里过程中遇到的问题。 我的需求如下: 用CMake构建项目。我要写一些测试程序验证某些功能,但是不想每一个测试都新建一个main函数。 因为新建一个main函数就要在CMakeList.txt里增加一个project,非常不方便。 于是我搜了下,C++里有没…...

Java类与对象
类是对现实世界中实体的抽象,是对一类事物的描述。 类的属性位置在类的内部、方法的外部。 类的属性描述一个类的一些可描述的特性,比如人的姓名、年龄、性别等。 [public] [abstract|final] class 类名 [extends父类] [implements接口列表] { 属性声…...
xlwings 链接到 指定sheet 从别的 excel 复制 sheet 到指定 sheet
重点 可以参考 宏录制 cell sheet.range(G4)cell.api.Hyperlinks.Add(Anchorcell.api, Address"", SubAddress"001-000-02301!A1")def deal_excel(self):with xw.App(visibleTrue) as app:wb app.books.open(self.summary_path, update_linksFalse)sheet…...

风光摄影:相机设置和镜头选择
写在前面 博文内容为《斯科特凯尔比的风光摄影手册》读书笔记整理涉及在风景拍摄中一些相机设置,镜头选择的建议对小白来讲很实用,避免拍摄一些过曝或者过暗的风景照片理解不足小伙伴帮忙指正 😃,生活加油 99%的焦虑都来自于虚度时间和没有好…...

python制作甘特图的基本知识(附Demo)
目录 前言1. matplotlib2. plotly 前言 甘特图是一种常见的项目管理工具,用于表示项目任务的时间进度 直观地看到项目的各个任务在时间上的分布和进度 常用的绘制甘特图的工具是 matplotlib 和 plotly 主要以Demo的形式展示 1. matplotlib 功能强大的绘图库&a…...
javascript设计模式总结
参考 通过设计模式可以增加代码的可重用性、可扩展性、可维护性 设计模式五大设计原则 单一职责:一个程序只需要做好一件事,如果结构过于复杂就拆分开,保证每个部分独立 开放封闭原则:对扩展开放,对修改封闭。增加需…...

gpt-4o看图说话-根据图片回答问题
问题:中国的人口老龄化究竟有多严重? 代码下实现如下:(直接调用openai的chat接口) import os import base64 import requests def encode_image(image_path): """ 对图片文件进行 Base64 编码 输入…...
【MySQL】7.MySQL 的内置函数
MySQL的内置函数 一.日期函数二.字符串函数三.数学函数四.其它函数 一.日期函数 函数名称说明current_date()当前日期current_time()当前时间current_timestamp当前时间戳(日期时间)date(datetime)截取 datetime 的日期部分date_add(date, interval d_value_type)给 date 添加…...
爬虫:Sentry-Span参数逆向
在抓某眼查数据太过频繁时会出现极验的验证码。极验的教程有很多,主要是发现在这里获取验证码的时候需要携带参数Sentry-Span。在这里记录一下逆向的主要过程,直接上补环境的代码。 window global; location {}; my_log console.log;(function () {l…...
音视频入门基础:H.264专题(12)——FFmpeg源码中通过SPS属性计算视频分辨率的实现
一、引言 在上一节《音视频入门基础:H.264专题(11)——计算视频分辨率的公式》中,讲述了通过SPS中的属性计算H.264编码的视频的分辨率的公式。本文讲解FFmpeg源码中计算视频分辨率的实现。 二、FFmpeg源码中计算视频分辨率的实现…...

基于颜色模型和边缘检测的火焰识别FPGA实现,包含testbench和matlab验证程序
目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 将FPGA仿真结果导入到matlab显示结果: 测试样本1 测试样本2 测试样本3 2.算法运行软件版本 vivado2019.2 …...

golang json反序列化科学计数法的坑
问题背景 func CheckSign(c *gin.Context, signKey string, singExpire int) (string, error) {r : c.Requestvar formParams map[string]interface{}if c.Request.Body ! nil {bodyBytes, _ : io.ReadAll(c.Request.Body)defer c.Request.Body.Close()if len(bodyBytes) >…...

罗技K380无线键盘及鼠标:智慧互联,一触即通
目录 1. 背景2. K380无线键盘连接电脑2.1 键盘准备工作2.2 电脑配置键盘的连接 3. 无线鼠标的连接3.1 鼠标准备工作3.2 电脑配置鼠标的连接 1. 背景 有一阵子经常使用 ipad,但是对于我这个习惯于键盘打字的人来说,慢慢在 ipad 上打字,实在是…...

卸载wps office的几种方法收录
第一种方法: 1.打开【任务管理器】,找到相关程序,点击【结束任务】。任务管理器可以通过左下角搜索找到。 2.点击【开始】-【设置】-【应用】-下拉找到WPS应用,右键卸载,不保留软件配置 …...

SpringCloud第一篇Docker基础
文章目录 一、常见命令二、数据卷三、数据挂载四、自定义镜像五、网络 一、常见命令 Docker最常见的命令就是操作镜像、容器的命令,详见官方文档: https://docs.docker.com/ 需求: 在DockerHub中搜索Nginx镜像,查看镜像的名称 …...

【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...

python打卡day49
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...
CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云
目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合
在汽车智能化的汹涌浪潮中,车辆不再仅仅是传统的交通工具,而是逐步演变为高度智能的移动终端。这一转变的核心支撑,来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒(T-Box)方案:NXP S32K146 与…...

使用LangGraph和LangSmith构建多智能体人工智能系统
现在,通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战,比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...
现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?
现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)ÿ…...