一种基于微服务进行数据恢复演练环境搭建的方法技术

技术编号:21832221 阅读:18 留言:0更新日期:2019-08-10 17:50
本发明专利技术公开了一种基于微服务进行数据恢复演练环境搭建的方法,其主要使用容器化的微服务去搭建数据库开发测试环境,快速实现数据恢复演练。同时,在客户端主机挂载外部数据卷,然后容器内数据库的数据目录通过微服务目录映射存放到挂载的外部数据卷中,从而将数据库数据与数据库应用程序隔离,实现数据持久化。本发明专利技术充分利用了容器化技术体积小巧,启动快速,高资源利用率与高隔离度的特点,通过镜像快速分发与部署,可快速搭建数据库开发测试环境进行数据恢复演练。无论部署在什么环境,数据库程序都能保持一致的运行效果,并且通过数据与数据库应用程序的隔离,实现数据在本地数据卷上的持久化。

A Method of Building Data Recovery Exercise Environment Based on Micro-Services

【技术实现步骤摘要】
一种基于微服务进行数据恢复演练环境搭建的方法
本专利技术属于计算机
,特别涉及一种基于微服务进行数据恢复演练环境搭建的方法。
技术介绍
对于数据库开发或测试环境的搭建,业内传统的做法一般是在物理机或虚拟机(VMware)上安装操作系统以及对应的数据库应用软件。这样不仅非常耗时,而且数据库软件的安装过程中经常会遇到各种本地库的依赖和软件之间的冲突,解决起来相当麻烦。所以数据库开发测试或管理人员在进行数据恢复演练等操作的过程中,迫切的需要引入一种新方法,能够快速搭建起所需的各种不同数据库的运行环境。近些年来诞生的微服务正是解决此问题的有效手段,它具有开发时间短、复杂度可控、独立部署、技术选型灵活、容错、扩展等众多优势。微服务提倡将单一应用程序划分成一组小的服务,服务之间互相协调和配合,为用户提供最终价值。一个大型复杂软件应用由一个或多个微服务组成,系统中的各个微服务可被独立部署,它们之间是松耦合的。每个服务运行在独立的进程中,服务与服务间采用轻量级的通信机制互相沟通。微服务的目的是有效的拆分应用,实现敏捷开发和部署。同时,在测试以外的需求下,直接使用微服务进行数据恢复演练时数据并不可靠。在单个服务出现异常时,数据得不到及时有效的保存和恢复。所以,为了确保数据的持久化,需要引入一种数据持久化方法,该方法需要将服务内的数据与可靠的外部环境相关联。同时,在服务切换时,尽量做到业务数据的不中断。本方案基于此目标,整合出一套通过微服务进行数据恢复演练环境搭建的方法。
技术实现思路
专利技术目的:本专利技术针对现有技术存在的问题,提供一种能够及时有效的对数据进行保存和恢复的基于微服务进行数据恢复演练环境搭建的方法。技术方案:为实现上述目的,本专利技术提供了一种基于微服务进行数据恢复演练环境搭建的方法,包括以下步骤:步骤1:在客户端主机上对Docker容器进行初始化操作;步骤2:客户端主机从远程服务器的本地仓库上拉取镜像;步骤3:查询拉取镜像子进程的状态;如果拉取镜像子进程结束,则表示镜像拉取完成,继续执行步骤4;如果拉取镜像子进程没有结束,则隔一段设定的时间继续查询拉取镜像子进程的状态;步骤4:查询镜像是否拉取成功;镜像拉取结束后检查本地是否已存在此镜像,若不存在说明镜像拉取失败,退出主程序;若镜像存在则说明镜像拉取成功,继续执行步骤5;步骤5:挂载外部数据卷到客户端主机的目录下;步骤6:生成Docker容器并启动Docker容器;步骤7:查询Docker容器状态;启动Docker容器后根据Docker容器的ID查询Docker容器的运行状态;若Docker容器状态为已退出,说明Docker容器运行出错,此时卸载外部数据卷并退出主程序;若Docker容器状态为运行中,则执行步骤8;步骤8:进入Docker容器执行数据库的数据恢复演练操作;如果在执行数据恢复演练操作过程中Docker容器停止工作,则进入步骤9的操作;如果完成了数据库的操作,则进入步骤10的操作;步骤9:Docker容器停止工作后被程序自动删除;自动选择一个新的Docker容器,重复步骤1~步骤8的操作;步骤10:Docker容器停止工作后被程序自动删除;步骤11:卸载外部数据卷,结束操作。其中,所述步骤1中的所述初始化操作包括:这个接口用于Docker连接的初始化工作;Docker容器中的进程通过绑定的/var/run/docker.sock文件与Docker守护进程通信,执行各种管理操作。进一步,所述步骤6中启动Docker容器的方法为:先进行客户端主机与Docker容器的端口映射和卷映射;Docker容器启动成功后返回这个Docker容器的ID;其中客户端主机与Docker容器的卷映射是将Docker容器内的目录映射到外部客户端主机挂载的数据卷上,模式为可读写。工作原理:本专利技术使用容器化的微服务去搭建数据库开发测试环境,快速实现数据恢复演练。同时,在客户端主机挂载外部数据卷,然后容器内数据库的数据目录通过微服务目录映射存放到挂载的外部数据卷中,这样可以在Docker容器内直接共享和重用数据卷,也可以直接对数据卷里的内容进行修改,即使容器被删除,此数据卷也会一直存在。从而数据就不再是应用程序的一部分,而是独立于应用的管理和控制,能够进行独立发展。如果Docker容器出现问题停止服务,或者被删除,或者Docker容器内的数据库程序瘫痪,数据库管理员可以立刻启动一个新的Docker容器,数据会拷贝到新初始化的数据卷中,确保服务的连续性。在数据量庞大时,我们也可以对数据库进行进一步的拆分,每一部分运行在单独的容器中,保证局部数据读写的性能;采用这样的方法将数据库数据与数据库应用程序隔离,实现数据持久化,在服务切换时,做到业务数据不中断。有益效果:与现有技术相比,本专利技术充分利用了容器化技术体积小巧,启动快速,高资源利用率与高隔离度的特点,通过镜像快速分发与部署,可快速搭建数据库开发测试环境进行数据恢复演练。无论部署在什么环境,数据库程序都能保持一致的运行效果,并且通过数据与数据库应用程序的隔离,实现数据在本地数据卷上的持久化。附图说明图1为本专利技术的工作流程图。具体实施方式下面结合附图对本专利技术做更进一步的解释。本实施例基于主流Linux系统,如rpm系列的RedHat/CentOS,采用Docker容器技术构建数据库的微服务运行环境。其主要由服务端和客户端两大部分组成:包括二步,第一步是在服务器上搭建Docker私有仓库,将打包了全部所需微服务的镜像上传到此仓库;第二步是在客户端主机上启动运行Docker容器,建立数据恢复演练环境。在服务器上搭建Docker私有仓库的流程如下:步骤11:准备Docker仓库镜像,可以从DockerHub拉取;步骤12:启动Docker仓库容器,Docker仓库容器默认使用服务器的5000端口;步骤13:将包含数据恢复演练环境的Docker镜像上传到私有仓库。为了简化结构和操作,在客户端使用Python语言提供Docker的API(应用程序编程接口)。如图1所示,在客户端主机上启动运行Docker容器,建立数据恢复演练环境包括以下步骤:步骤201:在客户端主机上对Docker容器进行初始化操作;client=docker.DockerClient(base_url='unix://var/run/docker.sock');Python语言提供Docker的API用于Docker连接的初始化工作。通过绑定的/var/run/docker.sock文件与Docker守护进程通信,执行各种管理操作。其中,client表示客户端主机,docker表示被操作对象,DockerClient为被操作对象使用的方法名称,base_url为链接名称。步骤202:客户端主机从远程服务器的本地仓库上拉取镜像;client.images.pull('10.0.xx.xx:5000/mysql-centos,tag='5r6');其中10.0.xx.xx为远程服务器的IP地址,mysql-centos为镜像的名称,5r6为镜像的tag(标签),主要表示客户端端拉取了一个打包了CentOS系统和MySQL数据库这两个微服务的Dcoker镜像。此命令执行后本文档来自技高网...

【技术保护点】
1.一种基于微服务进行数据恢复演练环境搭建的方法,其特征在于:包括以下步骤:步骤1:在客户端主机上对Docker容器进行初始化操作;步骤2:客户端主机从远程服务器的本地仓库上拉取数据库镜像;步骤3:查询拉取镜像子进程的状态;如果拉取镜像子进程结束,则表示镜像拉取完成,继续执行步骤4;如果拉取镜像子进程没有结束,则隔一段设定的时间继续查询拉取镜像子进程的状态;步骤4:查询镜像是否拉取成功;镜像拉取结束后检查客户端主机是否已存在此镜像,若不存在说明镜像拉取失败,退出主程序;若镜像存在则说明镜像拉取成功,继续执行步骤5;步骤5:挂载外部数据卷到客户端主机的目录下;步骤6:生成Docker容器并启动Docker容器;步骤7:查询Docker容器状态;启动Docker容器后根据Docker容器的ID查询Docker容器的运行状态;若Docker容器状态为已退出,说明Docker容器运行出错,此时卸载外部数据卷并退出主程序;若Docker容器状态为运行中,则执行步骤8;步骤8:进入Docker容器执行数据库的数据恢复演练操作;如果在执行数据恢复演练操作过程中Docker容器停止工作,则进入步骤9的操作;如果完成了数据库的操作,则进入步骤10的操作;步骤9:Docker容器停止工作后被程序自动删除;自动生成一个新的Docker容器,重复步骤6~步骤8的操作;步骤10:Docker容器停止工作后被程序自动删除;步骤11:客户端主机卸载外部数据卷,结束操作。...

【技术特征摘要】
1.一种基于微服务进行数据恢复演练环境搭建的方法,其特征在于:包括以下步骤:步骤1:在客户端主机上对Docker容器进行初始化操作;步骤2:客户端主机从远程服务器的本地仓库上拉取数据库镜像;步骤3:查询拉取镜像子进程的状态;如果拉取镜像子进程结束,则表示镜像拉取完成,继续执行步骤4;如果拉取镜像子进程没有结束,则隔一段设定的时间继续查询拉取镜像子进程的状态;步骤4:查询镜像是否拉取成功;镜像拉取结束后检查客户端主机是否已存在此镜像,若不存在说明镜像拉取失败,退出主程序;若镜像存在则说明镜像拉取成功,继续执行步骤5;步骤5:挂载外部数据卷到客户端主机的目录下;步骤6:生成Docker容器并启动Docker容器;步骤7:查询Docker容器状态;启动Docker容器后根据Docker容器的ID查询Docker容器的运行状态;若Docker容器状态为已退出,说明Docker容器运行出错,此时卸载外部数据卷并退出主程序;若Docker容器状态为运行中,则执行步骤8;步骤8:进入Docker容器执行数据库的数据恢复演...

【专利技术属性】
技术研发人员:梁亮
申请(专利权)人:南京云信达科技有限公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1