针对业务系统的主备容灾实战原理-基础版

news2024/12/28 5:30:43

1、前言

本文主要在于介绍:通过系统的实时容灾功能模块,针对用户云计算中关键业务系统的主备容灾方案原理。

涉及到的技术能力、运维能力要求偏高,遂本文尽量将容灾原理讲解清楚。需要用到的云计算能力包括:计算机操作系统(Linux/Windows)、计算机网络、计算机硬件、应用系统运行框架(B/S、C/S)、数据库应用、灾备技术等。

在本文中,将会多次出现:“数据库”、“操作系统”、“业务系统”等关键字,阅读时不需要先了解具体是哪个数据库,或是哪个具体的版本的操作系统,一切从原理理解出发即可。

本文章按照结构依次划分为:

①主备容灾能达到的效果;

②用于描述业务系统容灾原理的模拟环境介绍;

③业务系统主备容灾原理介绍;

④容灾方案扩展补充。

2、主备容灾能达到的效果

对于关键的业务系统,企业是不允许它长时间处于中断状态的,但数据丢失风险、业务中断风险原因众多,我们无法预知计算机出现故障时间,也无法得知会不会出现故障。因此对于关键的业务系统最好的办法就是做好灾备建设。

本文要讲解的主备容灾原理,可以将关键业务系统的灾备指标RTO、RPO都做到约等于0。简单理解就是,如果主机上的关键业务系统因计划外原因中断了,那么本文分享的容灾方案,可以在非常短的时间内,启用备机上的关键业务系统,代替主机提供业务服务。

3、模拟环境介绍

现有一款采用C/S架构的关键业务系统安装部署于主机上,该业务系统后端用到了一个结构化数据库用于存放业务数据,并且数据库也同时安装在该主机上。该主机有两块磁盘,第一块磁盘用于运行操作系统,第二块磁盘用于运行业务系统以及数据库。

同时我们预先配置好了一台备机,这台备机的磁盘大小和软件环境要和主机一致。我们这里可以采用一个简单且可靠的配置备机的方法:先对主机进行整机备份,再将主机的整机备份数据恢复至备机上即可。

用于搭建主备容灾方案的系统我们也提前搭建好了。

以上提到的三台计算机,业务系统主机、容灾备机、云祺容灾备份系统都是处于同一个网络下的,当然也可以处于不同网络,区别在于处于不同的网络对于网络技术能力要求较高。

该模拟环境逻辑拓扑图如下:

4、业务系统主备容灾原理介绍

因为在当前模拟环境中,业务系统的服务和数据库服务,都是安装部署在主机的数据盘上的,备机和主机是同样的提前配置好的,也就是说,要做到主备容灾,我们只需要将业务主机的数据盘和容灾备机上的数据库做到实时镜像同步就可以了。

实际上我们系统也是这样做的,通过备份系统就可以利用网络,在主机数据盘和备机数据盘之间建立一条实时同步的通道,主机上有数据变化时,数据都会通过这条通道同步到备机上的数据盘中,时刻让主机的数据盘和备机的数据库处于完全一致状态。如下图:

当然了在镜像同步的情况下,主机如果遇到灾难,需要备机拉起业务的时候,需要我们人工操作吗?在配置完整的情况下,是不需要我们人工进行操作的,全程由备份系统负责监测业务主机是否中断或故障,当监测到主机故障后,备份系统就会通知备机,拉起容灾备机上的业务和数据库来代替主机对外提供服务,并且主机的IP地址会漂移到备机上,也就是说灾难发生后,用户在访问业务系统的时候也是不需要更换访问地址的。几分钟的中断时间,可以说避免了业务系统长时间中断所带来的各种连带风险和直接、间接的经济损失。如下图:

5、容灾方案扩展补充

方案主要依赖于卷级实时同步,此种同步方式兼容性是非常广泛的,本文中提到的,将业务系统和数据库都放置在一台主机上是应用系统部署非常简单的一种方案。在实际的生产环境中,常见的部署方案一般是存算分离的部署方式,也就是将无状态的后端服务放置于一台主机中,数据库服务放置于一台主机中。这样的话对于无状态的后端服务,其实用一个Nginx服务也能做到主备容灾的效果,还能做到负载均衡。但数据库由于数据量大,采用负载均衡、集群等方式容灾时,成是非常高昂的,所以对于本无状态的前后端服务,仅针对数据库采取云祺主备机容灾方案,也是具有非常可行性的。

各个云计算环境都有些许不同的地方,大致原理都如本文所说,搭建主备容灾方案时,也会有不同的地方,非常感谢您的阅读。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

初入阿里云,上手走一波

初入阿里云,上手走一波 一阶:ECSMysqlDMS安装Mysql初始化MysqlMysql操作DMS管理Mysql 二阶:ECSOSS远程连接ECSOSS控制台其他图片服务 三阶:更多搭配操作 可以说个人在日常使用过程中,操作最多的阿里云产品就是阿里云服…

【el-tooltips改造】Vue实现文本溢出才显示el-tooltip,否则不显示el-tooltips

实现原理: 使用disabled属性控制el-tooltip的content显示与隐藏; 目标: 1行省略、多行省略、可缩放页面内的文本省略都有效。 实现方式: 1、自定义全局指令,tooltipAutoShow.js代码如下(参考的el-table中的…

【Python学习路线(课程大纲+Python视频教程+下载地址)_python 教程下载。】

目前Python已经成为最受欢迎的程序设计语言之一。Python的设计哲学是“优雅”、“明确”、“简单”。 学习Python具有多重显著的好处。首先,Python的语法简洁易读,降低了编程的入门门槛,使初学者能够更快地掌握编程的基本概念。其次&#xff…

自定义拦截器

大家好,这里是教授.F 前菜: 拦截器是由springmvc来接管的,过滤器使用服务器来接管的。 ● 自定义拦截器的三个方法[自定义的拦截器必须实现 HandlerInterceptor 接口] 1. preHandle():这个方法在业务处理器处理请求之前被调用&…

SVG不保持横纵比,完全由设置宽高任意拉伸填充

想要通过变形伸缩 填充元素的方式使用 svg&#xff0c;试了很多办法&#xff0c;终于找到的。 之前试过img形式显示svg虽然合适变形伸缩&#xff0c;但不能设置颜色。下面是正确效果的使用说明。 在源码svg中加 preserveAspectRatio"none" <svg width"…

访问网站时IP被阻止?原因及解决方法

在互联网上&#xff0c;用户可能会面临一个令人困扰的问题——当尝试访问某个特定的网站时&#xff0c;却发现自己的IP地址被该网站屏蔽。 IP地址被网站屏蔽是一个相对常见的现象&#xff0c;而导致这种情况的原因多种多样&#xff0c;包括恶意行为、违规访问等。本文将解释IP地…

Linux环境在非root用户中搭建(java-tomcat-redis)

注: 本文在内网(离线)环境&#xff0c;堡垒机中搭建&#xff0c;服务器不同可能有所差异&#xff0c;仅供参考 本文安装JDK-20.0.1版本&#xff0c;apache-tomcat-10.1.10版本&#xff0c;redis-6.2.15版本 本文服务器IP假设&#xff1a;192.168.88.133 root用户创建子用户并…

vue3 实现自定义指令封装 --- 通俗易懂

1、局部自定义指令 1.1 在<script setup>定义组件内的指令&#xff0c;任何以v开头的驼峰式命名的变量都可以被用作一个自定义指令 <template><div><h3>使用自定义指令</h3><div>########################## start 局部自定义指令</d…

哈希桶封装unordered_map、unordered_set

哈希桶源代码 我们将由下列的哈希桶来模拟封装STL库中的unordered_map和unordered_set 注意&#xff1a;为了实现封装unordered_map和unordered_set&#xff0c;我们需要对下列源码进行优化。 //哈希桶 namespace hashbucket {template<class K,class V>struct HashNo…

【YOLOv7改进系列】简化YOLOv7-tiny池化层,便于引入改进的池化层

〇、前言 相比YOLOv5/v7&#xff0c;除了YOLOv5n外&#xff0c;YOLOv7tiny的参数量较小&#xff0c;效果往往也相较YOLOv5n高上不少&#xff0c;又近来博主打算改进yolov7-tiny文件&#xff0c;但苦于其池化层部位是直接写在yaml中的&#xff0c;修改极为不便&#xff0c;因此…

使用安装包安装tomcat

Apache Tomcat 是一个开源的 Java 服务器&#xff0c;用于运行 Java Servlet、JavaServer Pages (JSP) 和相关的 Java 平台技术。它是一个轻量级的、灵活的容器&#xff0c;用于在 Java 环境中部署和管理 Web 应用程序。 以下是 Tomcat 的一些主要特点和功能&#xff1a; 1.Ser…

QNX 7.0.0开发总结

1 QNX编译 1.1 基本概念 QNX可以直接使用Linux Makefile编译库和二进制&#xff0c;在Makefile文件中指定CCaarch64-unknown-nto-qnx7.0.0-g&#xff0c;或者CCx86_64-pc-nto-qnx7.0.0-g&#xff0c;保存退出后&#xff0c;运行source /qnx_sdk_path/qnxsdp-env.sh&#xff0c;…

Day50 动态规划part09

LC198打家劫舍 偷前一家或者偷前两家和这家&#xff1a;dp[i] Math.max(dp[i-2]nums[i],dp[i-1]);代码 LC213打家劫舍II&#xff08; 未掌握&#xff09; 解题思路&#xff1a;因为成环了&#xff0c;所以首位元素一定是两者只能选择一个或者两者都不选三种情况&#xff1…

Android 11 低电量自动关机失效

Android 11 低电量自动关机 概述 安卓系统设计了低电关机功能&#xff0c;旨在当手机电池电量过低时自动关机&#xff0c;以保护手机硬件和数据安全。该功能由以下几个部分组成&#xff1a; 电池电量监测: 安卓系统通过 BatteryService 组件持续监测电池电量。BatteryService…

展厅设计中的不同区域划分

1、公共区域 公共区域一般来说是不受限制的区域&#xff0c;这种情况下&#xff0c;会使我们想到的区域是大厅、售卖区、视频播放等&#xff0c;这些公共区域的相关设施比较完善&#xff0c;只是需要普通的安全保护设施及警报设备即可。 2、展览区域 展览区域是参观者能够触及到…

创新指南|2024企业如何开启生成式AI创新?从5大应用场景和6步抓手

想要了解如何采用生成式AI来提高企业效率和竞争力&#xff1f;本指南将介绍如何采用生成式AI来实现数字化转型&#xff0c;并打造智能化商业模式。从5大应用场景和6大步骤切入&#xff0c;让您了解如何开启生成式AI创新。立即连线创新专家咨询或观看创新战略方案视频进一步了解…

业务扩张阶段

和之前相比就是服务器的数量增多了 业务系统增多了 每个业务的用户也在增多 采购费用和电费挺多 选课系统一年只用几次&#xff0c;平时不用太浪费服务器的资源&#xff0c;那么怎么才能提高服务器资源的利用率呢 在一个服务器上部署多个不同的业务系统能行吗 不太行&…

基于大模型 Gemma-7B 和 llama_index,轻松实现 NL2SQL

节前&#xff0c;我们星球组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、参加社招和校招面试的同学. 针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 汇总合集&…

生产问题排查:springboot项目启动时注册nacos失败或运行时从nacos闪退

文章目录 一、引出问题二、解决方案1、使用actuator健康检查2、项目启动时判断nacos是否正常连接3、k8s设置探针 一、引出问题 生产项目是用k8s部署的&#xff0c;最近经常遇到启动时注册不到nacos&#xff08;查找nacos的host地址找不到&#xff09;&#xff0c;或者运行的好…

Unity 之 代码修改材质球贴图

Unity 之 代码修改材质球贴图 代码修改Shader&#xff1a;ShaderGraph&#xff1a;材质球包含属性 代码修改 meshRenderer.material.SetTexture("_Emission", texture);Shader&#xff1a; ShaderGraph&#xff1a; 材质球包含属性 materials[k].HasProperty("…