双击热备方案实现(全)

双击热备是应用与服务器的一种解决方案,其构造思想是主机和从机通过TCP/IP网络连接,正常情况下主机处于工作状态,从机处于监视状态,一旦从机发现主机异常,从机将会在很短的时间内代替主机。完全实现主机的功能。

要想实现双击热备方案,就需要用到keepalived软件。

1.Keepalived介绍

Keepalived 是一种高性能的服务器高可用或热备解决方案, Keepalived 可以用来防止服务器单点故障的发生,通过配合 Nginx 可以实现 web 前端服务的高可用。

Keepalived是Linux下一个轻量级别的高可用解决方案。使用的是VRP协议,VRP协议将两台或多台设备组成一个虚拟路由组,在这个虚拟路由组中会存在一个MASTER书点以及多个BACKUP节点,在MASTER节点上会绑定一个虚拟VIP虚拟VIP),作为客户机只需要使用这个VIP来访问后端的服务器即可。虚拟IP的使用和真是P其实没有区别。当MASTER节点宕机以后,此时会从多个BACKUP节点中选择一个节点作为MASTER节点,而只有MASTER节点才可以绑定对应的VP,此时VIP就会重新绑定到新的MASTER节点上,这样就实现了ip的飘逸。而整个过程对客户机是透明的,客户机是感知不到ip飘逸的整个过程。

2.实操演示

2.1环境说明

本次我们使用两个虚拟机来演示一下借助于keepalived来实现双机热备。具体的环境说明如下所示:

2.2nginx安装

分别安装nginx

查看正在运行的进程并过滤出包含nginx关键字的进程的命令 :

ps -ef | grep nginx

查看防火墙状态:

systemctl status firewalld.service

如果状态为running

关闭防火墙:

systemctl stop firewalld.service

浏览器输入主从节点的IP查看nginx页面

主节点:

从节点:

2.3keppalived安装

主节点配置文件内容:

#定义虚拟网卡需要和当前服务器(192.168.35.xxx)绑定的网卡相对应

#定义组vriid,主从节点id配置相同

#adver_int : 1 每一秒发送一次心跳检查包

#主从节点之间的认证是通过密码认证,主从节点配置必须相同

#设置虚拟ip:用户去访问的ip,主从节点需要一致

备份节点配置文件内容:

配置完毕后启动Keepalived服务:

(先启动主节点,在启动从节点)

启动完成之后,查看ens33网卡ip地址是否新增了前面所配置的虚拟ip地址(110)

此时在主节点上查看查看ens33网卡ip地址时,可查看新增的110ip,从节点不显示110ip。

主节点:

从节点:

2.4 进行测试

1、使用虚拟ip访问nginx服务:http://192.168.136.1102、关闭主节点上的keepalived软件,查看ip是否可以自动飘逸

2.当把主节点(150)的keepalived服务停止时

停止后查看主节点(150)ens33网卡ip地址时,IP已发生飘逸变成150的IP

查看从节点(151)时,IP已经变成110

3.当把主节点(150)的keepalived服务启动时

启动后查看主节点(150)ens33网卡ip地址时,IP已发生飘逸变成110的IP

查看从节点(151)时,IP已经不显示虚拟IP

3.编写检测脚本

在刚才我们是通过手动关闭keepalived软件然后让ip飘逸到从节点上了,大家试想一下如果这个主机上的keepalived软件没有出现问题,而是nginx出现了问题,此时ip开会自动飘逸吗?肯定是不会的,那么此时用户使用虚拟ip访问的还是有问题的nginx,此时就无法完成请求访问。

虚拟IP(110)访问失败,因为目前110绑定的是主节点150,当访问虚拟IP110时,实际上访问的是主节点150的nginx,此时主节点150的nginx挂了,nginx访问失败。

解决该问题的思路:就是编写一个检测nginx服务的脚本,然后让keepalived每隔一段时间执行一次,一旦检测到了nginx出现问题了以后,就将keepalived进程关闭掉,keepalived进程关闭后,IP会进行漂移到另一台服务器。

检测脚本(check_nginx.sh):

(反引号)判断nginx的结果,当结果A=0时,标识nginx没启动,此时就将keepalived进程关闭掉。

设置可执行权限:

可将此脚本放在keepalived配置文件的相同目录

脚本执行命令:sh /路径/check_nginx.sh

测试

当执行脚本之后,主节点150 ens33网卡ip地址没有虚拟IP 110 ,此时访问110 时实际访问的是另一台服务器(151)的nginx

现在就能解决该问题,但是以上脚本时手动执行的,不现实,下面将修改配置,自动执行检测脚本。

在原来主节点的keepalived配置文件加上如下配置

注意:如果发现检测脚本不执行,此时就需要关闭linux中安全检测模块。

测试

1.启动主节点(150)的nginx,在启动主节点(150)的keepalived,此时查看主节点的 ens33网卡ip地址,发现虚拟IP110已经漂移回来了。

此时访问虚拟IP 110时,实际访问的是主节点 150的nginx

2.主动关闭主节点上的nginx

再次访问虚拟IP 110,此时实际访问的从节点151的nginx

至此,完整的双击热备解决方案得以解决!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/215917.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SQL Server 数据库,创建数据表

2.3表的基本概念 表是包含数据库中所有数据的数据库对象。数据在表中的组织方式与在电子表格中相似,都是 按行和列的格式组织的,每行代表一条唯一的记录,每列代表记录中的一个字段.例如,在包含公 司员工信息的表中,每行…

antv x6填坑指南: 部分节点拖拽和操作撤销重做不生效问题、使用Stencil过滤时过滤后分组的显示高度无法根据过滤节点自适应问题

问题1. 部分分组中节点拖拽添加或操作后撤销重做操作不生效。 前提:使用Stencil插件,创建画布侧边栏的 UI 组件,同时使用其分组、折叠能力。分组包含固定分组、后台接口获取的动态分组和组件。 //固定分组初始化 initStencil (graph, stenc…

Redis中缓存穿透、击穿、雪崩以及解决方案

目录 一、Redis 介绍 二、Redis 缓存穿透 三、Redis 缓存击穿 四、Redis 缓存雪崩 一、Redis 介绍 Redis(Remote Dictionary Server)是一个开源的内存数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持多种数据结构&#xf…

centos7防火墙开启端口

1.查看防火墙状态 firewall-cmd --state如果返回的not running,那么需要先开启防火墙 2.开启关闭防火墙 systemctl start firewalld.service systemctl stop firewalld.service systemctl restart firewalld.service3.开放指定端口 firewall-cmd --zonepublic -…

对点云进行凸包提取

void getConcaveHull(PointCloud::Ptr& cloud,const pcl::PointCloud<PointXYZ>::Ptr &hull) {if(cloud->points.size()<3){return ;}PointCloud ::Ptr cloud_filtered(new PointCloud());downSample(cloud,cloud_filtered);// 创建凹包提取对象pcl::Conca…

人工智能学习3(特征变换)

编译工具&#xff1a;PyCharm 有些编译工具不用写print可以直接将数据打印出来&#xff0c;pycharm需要写print才会打印出来。 概念 1.特征类型 特征的类型&#xff1a;“离散型”和“连续型” 机器学习算法对特征的类型是有要求的&#xff0c;不是任意类型的特征都可以随意…

重塑生成式AI时代数据战略,亚马逊云科技re:Invent大会Swami主题演讲

re:lnvent 2023 Swami Sivasubramanian主题演讲&#xff0c;数据、AI和人类共进共生&#xff0c;重塑生成式AI时代的数据战略。 赋能人才加持生成式AI必备能 生成式AI创新中心&#xff1a;解决生成式AI工程化挑战。 Amazon Bedrock平台PartyRock&#xff1a;生成式AI应用程序实…

Docker Registry本地镜像仓库部署并实现远程连接拉取镜像

Linux 本地 Docker Registry本地镜像仓库远程连接 文章目录 Linux 本地 Docker Registry本地镜像仓库远程连接1. 部署Docker Registry2. 本地测试推送镜像3. Linux 安装cpolar4. 配置Docker Registry公网访问地址5. 公网远程推送Docker Registry6. 固定Docker Registry公网地址…

【往届均已IEEE出版,EI检索】 第五届计算机工程与应用国际学术会议 (ICCEA 2024)

第五届计算机工程与应用国际学术会议 (ICCEA 2024) 2024 5th International Conference on Computer Engineering and Application 计算机工程与应用在人工智能、大数据、云计算、物联网、网络安全等领域发挥着重要作用&#xff0c;随着科技日益进步&#xff0c;该领域的研究…

Python 潮流周刊#29:Rust 会比 Python 慢?!

△请给“Python猫”加星标 &#xff0c;以免错过文章推送 你好&#xff0c;我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容&#xff0c;大部分为英文。本周刊开源&#xff0c;欢迎投稿[1]。另有电报频道[2]作为副刊&#xff0c;补充发布更加丰富的资讯。 &#x1f43…

云原生之深入解析Kubernetes策略引擎对比:OPA/Gatekeeper与Kyverno

一、前言 ① Kubernetes 策略 Kubernetes 的 Pod Security Policy&#xff0c;正如其名字所暗示的&#xff0c;仅是针对 Pod 工作的&#xff0c;是一种用来验证和控制 Pod 及其属性的机制。另外 PSP 只能屏蔽非法 Pod 的创建&#xff0c;无法执行任何补救/纠正措施。而 Gatek…

ApachePOI入门案例——读取Excel文件的内容

依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.1.2</version> </dependency> <dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml…

一、Zookeeper基本知识

目录 1、ZooKeeper概述 2、ZooKeeper特性 3、ZooKeeper集群角色 ​​​​​​​1、ZooKeeper概述 Zookeeper是一个分布式协调服务的开源框架。主要用来解决分布式集群中应用系统的一致性问题。 ZooKeeper本质上是一个分布式的小文件存储系统。提供基于类似于文件系统的目录…

【华为OD题库-049】评论转换输出-java

题目 在一个博客网站上&#xff0c;每篇博客都有评论。每一条评论都是一个非空英文字母字符串。评论具有树状结构&#xff0c;除了根评论外&#xff0c;每个评论都有一个父评论。 当评论保存时&#xff0c;使用以下格式: 首先是评论的内容; 然后是回复当前评论的数量。 最后是当…

05、pytest断言确定的异常

官方用例 # content of test_sysexit.py import pytestdef f():raise SystemExit(1)def test_mytest():with pytest.raises(SystemExit):f()解读与实操 ​ 标准python raise函数可产生异常。pytest.raises可以断言某个异常会发现。异常发生了&#xff0c;用例执行成功&#x…

华为云云绘本第一期:童话奇迹原来是你

点此进入官网&#xff0c;专家1对1&#xff1a;应用身份管理服务OneAccess_华为云IDaaS-华为云

Python:核心知识点整理大全2-笔记

在本章中&#xff0c;你将学习可在Python程序中使用的各种数据&#xff0c;还将学 习如何将数据存储到变量中&#xff0c;以及如何在程序中使用这些变量。 2.1 运行 hello_world.py 时发生的情况 运行hello_world.py时&#xff0c;Python都做了些什么呢&#xff1f;下面来深入…

ArcGIS提取DEM中的山脉范围

已知数据&#xff1a;DEM文件ASTGTM_N00E118E.img 使用软件&#xff1a;ArcMap 要求&#xff1a;对数据进行操作&#xff0c;提取数据文件中的山脉范围 下面开始操作&#xff1a; 1、 打开ArcMap将DEM文件ASTGTM_N00E118E.img添加到数据框。 2、 接下来我们打开spatial ana…

三十七、XA模式

目录 一、XA模式原理 在XA模式中&#xff0c;一个事务通常被分为两个阶段&#xff1a; 二、Seata的XA模式 RM一阶段的工作&#xff1a; TC一阶段的工作&#xff1a; RM二阶段的工作&#xff1a; 1、优点&#xff1a; 2、缺点&#xff1a; 三、实现XA模式 1、修改yml文…

CYCA少儿形体礼仪 朝阳市培训成果考核圆满落幕

少年成长从形体教育开始——从2020年美育中考落地执行开始&#xff0c;美育成为少儿教育发展的必经之路&#xff0c;助力少儿综合能力全面发展。CYCA中国文化管理协会青少年文化艺术委员会全面贯彻党的教育方针&#xff0c;促进儿童素质艺术教育并深入实施&#xff0c;从少儿形…