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

LVS+Keepalive高可用

1、keepalive

调度器的高可用

vip地址主备之间的切换,主在工作时,vip地址只在主上,vip漂移到备服务器。

在主备的优先级不变的情况下,主恢复工作,vip会飘回到住服务器

1、配优先级

2、配置vip和真实服务器

3、主备的id要一致

4、主备的id要区分

2、怎么检测这个漂移?

nginx状态停止同时keepalive也要同时停掉

3、keeplive的脑裂怎么解决?

lvs集群当中的高可用架构,只是针对调度器的高可用。

基于vrrp来实现调度器的主和备。

高可用的HA架构

主调度器和备调度(多台)

在主调度器正常工作的时候,备完全处于冗余状态(待命),不参与集群的运转,只有当主调度器出现故障时,备才会承担主调度器的工作,主调度器恢复功能之后,主继续作为集群的入口,备继续处于冗余状态(取决于优先级)

keepalive基于vrrp协议来实现lvs高可用的方案

1、组播地址:224.0.0.18,根据组播地址来进行通信,主和备之间发送报文。确定对方是否存活

2、根据优先级的大小来确定主和备的位置

3、故障切换,主挂了,备来继续工作,主恢复了,备继续等待

4、主和备之间切换的是vip地址的切换

keepalive的专门为了lvs而出现的,但不是lvs专用的

4、实验keepalive+nginx实现高可用

安装keepalive脚本

yum -y install keeplived

 编辑一个监控脚本,监控当nginx服务被关闭时,keepalive实现切换功能

check_nginx.sh
#!/bin/bash
/usr/bin/curl -I http://localhost &> /dev/null  调用路径
if [ $? -ne 0 ] 返回码为零执行下面内容
thensystemctl stop keepalived
fi

开启nginx服务

脚本赋执行权限

修改keepalive的配置文件

主配置

cd /etc/keepalived
vim  keepalived.conf
----------------------
global_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 127.0.0.1#邮箱发送到本地smtp_connect_timeout 30router_id LVS_01vrrp_skip_check_adv_addrvrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0vrrp_iptables#关闭iptables
}
#跟踪模块,调用脚本检测nginx状态vrrp_script check_nginx{script "/opt/check_nginx.sh"#检测的间隔时间为5秒interval 5
}
vrrp_instance VI_1 {state MASTERinterface ens33#修改网卡virtual_router_id 51#id号需一致priority 120#优先级advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.10.100#vip地址}  #监控模块,检查track_script{check_nginx}   }wq
[root@localhost keepalived]# systemctl restart keepalived.service 

检查状态

当nginx关闭,5秒后检查keepalive状态也关闭

备服务器

 将主服务去配置文件发送给备并稍作修改

global_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 127.0.0.1smtp_connect_timeout 30router_id LVS_02#idvrrp_skip_check_adv_addrvrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0vrrp_iptables
}vrrp_script check_nginx {script "/opt/check_nginx.sh"interval 5
}
vrrp_instance VI_1 {state BACKUP#备服务器interface ens33virtual_router_id 51priority 100#优先级比主低advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.10.100}track_script {check_nginx}
}

在主上查询keepalive是否配置成功,当主服务器的nginx服务被关闭,相对于的keepalive也会关闭,虚拟vip切换到备用服务器,依旧可以工作,切换后主服务的nginx服务开启,keepalive开启,vip地址切换到主服务器。

关闭主服务的nginx查看备服务器的keepalive切换成功

查看主备的keepalive状态

当主服务器关闭nginx服务,使用客户端访问vip显示内容为由nginx1的转换成nginx2的内容,表示切换到备服务器。

相关文章:

LVS+Keepalive高可用

1、keepalive 调度器的高可用 vip地址主备之间的切换,主在工作时,vip地址只在主上,vip漂移到备服务器。 在主备的优先级不变的情况下,主恢复工作,vip会飘回到住服务器 1、配优先级 2、配置vip和真实服务器 3、主…...

网络安全防御【防火墙安全策略用户认证综合实验】

目录 一、实验拓扑图 二、实验要求 三、实验思路 四、实验步骤 1、打开ensp防火墙的web服务(带内管理的工作模式) 2、在FW1的web网页中网络相关配置 3、交换机LSW6(总公司)的相关配置: 4、路由器相关接口配置&a…...

IOS上微信小程序密码框光标离开提示存储密码解决方案

问题: ios密码框输入密码光标离开之后会提示存储密码的弹窗 解决方案 1、在苹果手机上面把 “自动填充密码”关闭,但是苹果这个默认开启,而且大部分客户也不会去自己关闭。 2、欺骗苹果手机,代码实现。 先说解决思路&#xf…...

AWS CDN新增用户ip 地区 城市 响应头

1.需要自定义cdn缓存策略 这里的策略也是先复制之前的cdn策略哈 最后复制完了 全部新增这两条标头key CloudFront-Viewer-Country CloudFront-Viewer-City 2.然后新增cdn函数,应用你写的这个函数 function handler(event) {var request event.request;var respon…...

Elasticsearch基础概念

Elasticsearch 是一款开源的,ESTful风格的 分布式搜索、存储、分析引擎; 常见的使用场景 网站搜索,代码搜索等日志管理与分析,应用系统性能分析,安全指标监控等数据库同步,将数据库某个表的数据同步到elasticsearch上然后提供搜索服务 ES基本概念 文档 我们向elasticsearch存…...

Redis 7.x 系列【24】哨兵模式配置项

有道无术,术尚可求,有术无道,止于术。 本系列Redis 版本 7.2.5 源码地址:https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. 前言2. 配置项2.1 protected-mode2.2 port2.3 daemonize2.4 pidfile2.5 loglevel2.…...

SpringBoot+Vue实现简单的文件上传(策略模式)

SpringBootVue实现简单的文件上传 1 环境 SpringBoot 3.2.1,Vue 2,ElementUI 2 问题 前两篇文章,我们上传了txt、Excel文件,其实文件类型有很多种,如果我们的upload组件没有上传文件类型的限制,那么同一个…...

软考中级科目包含哪些?应该考哪个?

软考中级包含5个专业方向,分别是:计算机软件、计算机网络、计算机应用技术、信息系统、信息服务。这5个方向又对应15个软考中级科目。 信息系统包括:系统集成项目管理工程师、信息系统监理师、信息安全工程师、数据库系统工程师、信息系统管…...

ArcGIS Enterprise 命令行组件创建配置

1. 创建ArcGIS Server站点 使用 createsite工具 命令行直接执行 createsite.sh [-u <arg>] [-p <arg>] [-d <arg>] [-c <arg>]执行文件 createsite.sh [-f <FILE>]安装目录下会有类似的创建站点文件&#xff1a; 修改其中的内容&#xff0c;…...

Web组成架构

网站源码&#xff1a;分脚本类型&#xff0c;分应用方向操作系统&#xff1a;windows&#xff0c;linux中间件&#xff08;搭建平台&#xff09;&#xff1a;apche、IIS、tomcat、nginx等数据库&#xff1a;mssql、oracle、sybase、db2、access等 WEB相关安全漏洞 WEB源码类对…...

「Pytorch」roLabelImg 图像异常旋转 bug

在进行Yolo-obb 模型训练的时候需要标注旋转框&#xff0c;roLabelImg 是比较推荐的一款旋转框标注工具&#xff0c;既可以标注正常的矩形框&#xff0c;还可以标注旋转框 roLabelImg Github 地址&#xff1a;https://github.com/HumanSignal/labelImg 但是在使用过程中遇到了…...

java.sql.SQLException: Unknown system variable ‘query_cache_size‘【Pyspark】

1、问题描述 学习SparkSql中&#xff0c;将spark中dataframe数据结构保存为jdbc的格式并提交到本地的mysql中&#xff0c;相关代码见文章末尾。 运行代码时报出相关配置文件错误&#xff0c;如下。 根据该报错&#xff0c;发现网络上多数解决方都是基于java开发的解决方案&a…...

汽车连接器革新!中国星坤产品在汽车安全与效率中的卓越表现!

随着汽车行业的快速发展&#xff0c;车载电子系统的复杂性不断增加&#xff0c;对连接器的性能要求也越来越高。中国星坤推出的汽车连接器&#xff0c;以其卓越的设计和性能&#xff0c;为汽车行业带来了一场技术革新。这些连接器不仅能够适应极端的工作环境&#xff0c;还确保…...

DHCP服务、FTP服务

一、DHCP 1.1 DHCP是什么 DHCP&#xff08;Dynamic Host Configuration Protocol&#xff0c;动态主机配置协议&#xff09;是一种网络协议&#xff0c;用于自动分配 IP 地址和其他网络配置信息给网络中的设备 1.2 DHCP的好处 自动化: 减少了手动配置 IP 地址和网络参数的工…...

AWS云计算实战:电商平台发卡机器人开发指南

在当今数字化时代&#xff0c;电商平台的自动化运营变得尤为重要。本文将深入探讨如何利用AWS云计算平台开发一款高效的发卡机器人&#xff0c;旨在提高电商平台的自动化水平和用户体验。 关键词 AWS云计算, 电商平台, 发卡机器人 1. 引言 随着电商行业的蓬勃发展&#xff…...

虚拟机及其Debian(kali)安装

本机电脑为Windows10系统专业版&#xff0c;在此基础上安装VMware和系统&#xff08;Kali&#xff09; 步骤如下 一、安装 VMware Workstation Pro v16.2.4 安装步骤可参照网上博客&#xff0c;该步骤较简单&#xff0c;此处不做讲解。文件中共计两个&#xff0c;其中一个是激活…...

Linux部署禅道(无脑复制版)

目录 环境部署1、下载&#xff0c;解压2、启动3、设置开机自启 登录禅道登录数据库1、设置账号2、网页登录数据库 环境 Linux系统 Centos7 《Linux一键安装包安装禅道》视频链接&#xff1a; https://www.zentao.net/zentao-install/zentao-linux-install-80523.html 部署 …...

C# .net6使用Hangfire

首先我们先来了解什么是Hangfire&#xff1f; Hangfire 是一个用于 .NET 的任务调度库&#xff0c;允许你在后台运行任务&#xff0c;而不需要依赖外部的任务队列服务或复杂的基础设施。它简化了后台任务的创建、调度和管理过程&#xff0c;使得在 .NET 应用程序中处理长期运行…...

NaiveUI与ElementUI 比较分析

前言 在前端开发的广阔领域中&#xff0c;Vue.js作为最流行的前端框架之一&#xff0c;为开发者提供了丰富的组件库&#xff0c;其中NaiveUI和ElementUI是两个备受瞩目的选择。本文将深入分析这两个组件库的特点、优劣势以及适用场景&#xff0c;帮助开发者在项目中做出更合适…...

使用ChatGPT来撰写和润色学术论文的教程(含最新升级开桶ChatGpt4教程)​​

现在有了ChatGPT4o更加方便了, 但次数太少了 想要增加次数可以考虑升级开桶ChatGpt4​​ 一、引言 在学术研究中&#xff0c;撰写高质量的论文是一项重要的技能。本教程将介绍如何利用ChatGPT来辅助完成从论文构思到润色的全过程。 二、使用ChatGPT写论文 1. 写标题 Title/T…...

谷歌浏览器插件

项目中有时候会用到插件 sync-cookie-extension1.0.0&#xff1a;开发环境同步测试 cookie 至 localhost&#xff0c;便于本地请求服务携带 cookie 参考地址&#xff1a;https://juejin.cn/post/7139354571712757767 里面有源码下载下来&#xff0c;加在到扩展即可使用FeHelp…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中&#xff0c;手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力&#xff0c;既支持点击、长按、拖拽等基础单一手势的精细控制&#xff0c;也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

PL0语法,分析器实现!

简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...

根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:

根据万维钢精英日课6的内容&#xff0c;使用AI&#xff08;2025&#xff09;可以参考以下方法&#xff1a; 四个洞见 模型已经比人聪明&#xff1a;以ChatGPT o3为代表的AI非常强大&#xff0c;能运用高级理论解释道理、引用最新学术论文&#xff0c;生成对顶尖科学家都有用的…...

算法笔记2

1.字符串拼接最好用StringBuilder&#xff0c;不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...

AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机

这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机&#xff0c;因为在使用过程中发现 Airsim 对外部监控相机的描述模糊&#xff0c;而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置&#xff0c;最后在源码示例中找到了&#xff0c;所以感…...

WebRTC从入门到实践 - 零基础教程

WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC&#xff1f; WebRTC&#xff08;Web Real-Time Communication&#xff09;是一个支持网页浏览器进行实时语音…...

WPF八大法则:告别模态窗口卡顿

⚙️ 核心问题&#xff1a;阻塞式模态窗口的缺陷 原始代码中ShowDialog()会阻塞UI线程&#xff0c;导致后续逻辑无法执行&#xff1a; var result modalWindow.ShowDialog(); // 线程阻塞 ProcessResult(result); // 必须等待窗口关闭根本问题&#xff1a…...