CN113986514B - 基于数据库部署的任务流控制方法和装置 - Google Patents
基于数据库部署的任务流控制方法和装置 Download PDFInfo
- Publication number
- CN113986514B CN113986514B CN202111593518.7A CN202111593518A CN113986514B CN 113986514 B CN113986514 B CN 113986514B CN 202111593518 A CN202111593518 A CN 202111593518A CN 113986514 B CN113986514 B CN 113986514B
- Authority
- CN
- China
- Prior art keywords
- cluster
- deployment
- instance
- sequence
- task
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种基于数据库部署的任务流控制方法和装置,基于预先配置的集群资源信息,生成集群部署任务。按照序位由前至后的顺序,依次执行集群实例序列中的各个集群实例。在集群实例序列中的每个集群实例均成功执行后,确定集群部署任务完成,并向用户发送集群部署成功提示。基于本申请所示方案,当用户需要部署数据库集群时,利用任务流的集群实例序列,实现按照各个部署步骤的操作顺序,执行与每个部署步骤对应的子任务,从而完成对数据库集群的部署。相较于现有技术,用户无需熟悉每个部署步骤的操作顺序,也无需参与每个部署步骤的操作,避免人为因素所产生的失误操作,减少部署过程所耗费的时间,从而提高数据库集群的部署效率。
Description
技术领域
本申请涉及数据库部署领域,尤其涉及一种基于数据库部署的任务流控制方法和装置。
背景技术
Redis是当前比较流行的数据库,很多企业都会使用Redis官方提供的高可用实现方案,比如Redis集群方案。在使用Redis集群之前,需要对Redis集群进行部署。
目前,Redis集群的部署过程,通常由人工手动操作实现。然而,Redis集群的部署过程,并非能够一步操作就可以成功的,部署过程中所涉及的部署步骤数量较多,且需要用户熟悉每个部署步骤的操作顺序,任何一个部署步骤的出错,都将导致Redis集群部署失败。显然,利用现有的部署方式去部署Redis集群,将会耗费大量时间,部署效率较低。
发明内容
本申请提供了一种基于数据库部署的任务流控制方法和装置,目的在于提高数据库集群的部署效率。
为了实现上述目的,本申请提供了以下技术方案:
一种基于数据库部署的任务流控制方法,包括:
依据用户预先输入的集群申请信息,配置集群资源信息;
在接收到所述用户输入的部署指令后,基于所述集群资源信息,生成集群部署任务;其中,所述集群部署任务包括任务流、所述任务流的基本信息;所述任务流包括各个预先编排的子任务;所述子任务预先封装有执行逻辑;所述执行逻辑用于实现数据库集群部署过程中所需的部署步骤;所述任务流中各个子任务的执行顺序,与所述数据库集群部署过程中所需的各个部署步骤的操作顺序相同;所述基本信息包括用于部署集群的机器资源;
在确定所述用于部署集群的机器资源为可用的情况下,生成所述任务流的集群实例序列;所述集群实例序列包括与所述任务流中每个子任务对应的集群实例;每个所述集群实例均用于执行与自身对应的子任务,且各个所述集群实例按照所述任务流中各个子任务的执行顺序进行排序;
按照序位由前至后的顺序,依次执行所述集群实例序列中的各个集群实例;
在所述集群实例序列中的每个集群实例均成功执行后,确定所述集群部署任务完成,并向用户发送集群部署成功提示。
可选的,所述按照序位由前至后的顺序,依次执行所述集群实例序列中的各个集群实例之后,还包括:
获取每个所述集群实例的状态信息,并基于每个所述集群实例的状态信息,生成所述任务流的执行日志。
可选的,所述集群实例的状态信息包括与所述集群实例对应的子任务的状态;
所述在所述集群实例序列中的每个集群实例均成功执行后,确定所述集群部署任务完成,并向用户发送集群部署成功提示,包括:
对于每个所述集群实例,在检测到所述集群实例无法正常执行时,将与所述集群实例对应的子任务的状态设为运行失败,并通过预设界面提示所述用户所述任务流中存在运行失败的子任务;
依据所述用户对所述运行失败的子任务的触发操作,对所述运行失败的子任务进行重试操作,使得所述运行失败的子任务成功运行;
在所述运行失败的子任务成功运行后,确定所述集群实例成功执行,并将与所述集群实例对应的子任务的状态更新为运行成功;
在所述集群实例序列中的每个集群实例均成功执行后,确定所述集群部署任务完成,并向用户发送集群部署成功提示。
可选的,所述集群部署任务还包括所述任务流的运行参数;
所述在确定所述用于部署集群的机器资源为可用的情况下,生成所述任务流的集群实例序列之前,还包括:
对所述任务流的运行参数进行初始化。
可选的,所述集群部署任务还包括所述任务流的运行参数;所述运行参数包括用于部署所述数据库集群的节点;
所述按照序位由前至后的顺序,依次执行所述集群实例序列中的各个集群实例之后,还包括:
对用于部署所述数据库集群的节点进行加密。
一种基于数据库部署的任务流控制装置,包括:
信息配置单元,用于依据用户预先输入的集群申请信息,配置集群资源信息;
任务生成单元,用于在接收到所述用户输入的部署指令后,基于所述集群资源信息,生成集群部署任务;其中,所述集群部署任务包括任务流、所述任务流的基本信息;所述任务流包括各个预先编排的子任务;所述子任务预先封装有执行逻辑;所述执行逻辑用于实现数据库集群部署过程中所需的部署步骤;所述任务流中各个子任务的执行顺序,与所述数据库集群部署过程中所需的各个部署步骤的操作顺序相同;所述基本信息包括用于部署集群的机器资源;
实例生成单元,用于在确定所述用于部署集群的机器资源为可用的情况下,生成所述任务流的集群实例序列;所述集群实例序列包括与所述任务流中每个子任务对应的集群实例;每个所述集群实例均用于执行与自身对应的子任务,且各个所述集群实例按照所述任务流中各个子任务的执行顺序进行排序;
实例执行单元,用于按照序位由前至后的顺序,依次执行所述集群实例序列中的各个集群实例;
提示单元,用于在所述集群实例序列中的每个集群实例均成功执行后,确定所述集群部署任务完成,并向用户发送集群部署成功提示。
可选的,还包括:
日志生成单元,用于获取每个所述集群实例的状态信息,并基于每个所述集群实例的状态信息,生成所述任务流的执行日志。
可选的,还包括:
节点加密单元,用于对用于部署所述数据库集群的节点进行加密。
一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,所述程序执行所述的基于数据库部署的任务流控制方法。
一种基于数据库部署的任务流控制设备,包括:处理器、存储器和总线;所述处理器与所述存储器通过所述总线连接;
所述存储器用于存储程序,所述处理器用于运行程序,其中,所述程序运行时执行所述的基于数据库部署的任务流控制方法。
本申请提供的技术方案,依据用户预先输入的集群申请信息,配置集群资源信息。在接收到用户输入的部署指令后,基于集群资源信息,生成集群部署任务。其中,集群部署任务包括任务流、任务流的基本信息。任务流包括各个预先编排的子任务。子任务预先封装有执行逻辑。执行逻辑用于实现数据库集群部署过程中所需的部署步骤。任务流中各个子任务的执行顺序,与数据库集群部署过程中所需的各个部署步骤的操作顺序相同。基本信息包括用于部署集群的机器资源。在确定用于部署集群的机器资源为可用的情况下,生成任务流的集群实例序列。集群实例序列包括与任务流中每个子任务对应的集群实例。每个集群实例均用于执行与自身对应的子任务,且各个集群实例按照任务流中各个子任务的执行顺序进行排序。按照序位由前至后的顺序,依次执行集群实例序列中的各个集群实例。在集群实例序列中的每个集群实例均成功执行后,确定集群部署任务完成,并向用户发送集群部署成功提示。基于本申请所示方案,将数据库集群部署过程拆分为多个部署步骤,并将用于实现部署步骤的执行逻辑封装为子任务,当用户需要部署数据库集群时,利用任务流的集群实例序列,实现按照各个部署步骤的操作顺序,执行与每个部署步骤对应的子任务,从而完成对数据库集群的部署。相较于现有技术,用户无需熟悉每个部署步骤的操作顺序,也无需参与每个部署步骤的操作,避免人为因素所产生的失误操作,减少部署过程所耗费的时间,从而有效提高数据库集群的部署效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种基于数据库部署的任务流控制方法的流程示意图;
图2为本申请实施例提供的另一种基于数据库部署的任务流控制方法的流程示意图;
图3为本申请实施例提供的一种基于数据库部署的任务流控制装置的架构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图1所示,为本申请实施例提供的一种基于数据库部署的任务流控制方法的流程示意图,包括如下步骤:
S101:对数据库集群(本申请实施例简称为集群)的部署过程进行解析,得到各个部署步骤,以及各个部署步骤之间的操作顺序。
其中,集群部署过程中所需的部署步骤,包括但不限于为:预先下载指定版本的集群源码包;在服务器中安装源码包;配置服务器的系统环境(比如不同源码版本依赖环境不同、内存交换关闭、大内存页关闭等);然后创建集群的配置文件;启动集群的各个节点;通过官方脚本将多个节点进行握手确认;向各个节点分配插入槽。
S102:创建与每个部署步骤对应的执行逻辑,并对与每个部署步骤对应的执行逻辑进行封装,得到与每个部署步骤对应的子任务。
S103:依据各个部署步骤之间的操作顺序,对与每个部署步骤对应的子任务进行编排,得到任务流。
其中,任务流中各个子任务的执行顺序,实质就是各个部署步骤之间的操作顺序。
在本申请实施例中,任务流的可以表现为任务类,任务流中所包含的各个子任务,均可以充当为任务类中所包含的方法。具体的,任务流的表现逻辑如下所示:
RedisClusterAppDeployTask
getTaskStep():List<String>
init():TaskFlowStatusEnum。
相应的,子任务的表现逻辑如下所示:
CheckResourceAllow():TaskFlowStatusEnum。
此外,任务流的具体调用逻辑如下所示:
public List<String> getTaskSteps() {
List<String> taskStepList = new ArrayList<String>();
taskStepList.add(TaskConstants.INIT_METHOD_KEY);//1.初始化系统参数
taskStepList.add("checkResourceAllow");//2.检查资源是否满足条件
taskStepList.add("checkMachineConnect");//3.检查机器可用性
taskStepList.add("updateMachineAllocateTrue");//4.更新机器状态
}
进一步的,由上述表现逻辑可知,子任务在执行过程中,可通过任务类的反射调用方法逻辑,将自身的响应状态返回至预设的枚举类,一般来讲,枚举类的表现逻辑如下所示:
READY(0, "准备"),
RUNNING(1, "运行中"),
ABORT(2, "中断"),
FAIL(3, "失败"),
SUCCESS(4, "成功"),
SKIP(5, "跳过")。
需要说明的是,上述提及的全部表现逻辑仅仅用于举例说明。
S104:在接收到用户输入的集群申请信息后,依据集群申请信息,配置集群资源信息。
其中,集群申请信息包括集群的类型,集群的内存总量,以及其它相关信息(例如项目负责人、集群的版本、应用名称、申请ID等)。集群资源信息包括但不限于为:节点对的数量、每个节点对所属的机器资源、每个节点对中所包含的节点的占用内存。
需要说明的是,所谓的机器资源,用于部署节点对中的主节点和从节点,具体可以为虚拟机。此外,每个机器资源所属的宿主机互不相同,所谓的宿主机,为机器资源所在的物理机。由于每个机器资源所属的宿主机互不相同,因此,当集群发生故障时,可以将故障的宿主机中所执行的集群实例,转移到正常的宿主机中执行,确保集群能够正常工作。
在本申请实施例中,每个节点对均包含有一个主节点和一个从节点。
S105:在接收到用户输入的部署指令后,基于集群资源信息,生成集群部署任务。
其中,集群部署任务包括一个或多个任务流、每个任务流的基本信息和运行参数。一般来讲,任务流的数量与集群资源信息所示节点的数量保持一致。
任务流的基本信息均包括但不限于为:任务ID(即任务流的预设唯一标识)、集群ID(即集群的预设唯一标识)、任务名称、用于部署集群的机器资源、运行参数(初始参数和动态参数)等。
需要说明的是,任务流的初始参数包括但不限于为:审核任务ID、集群的安装版本、申请当前应用的ID、每个机器资源上所部署的节点的数量、每个节点所占用的内存大小、当前分配的机器资源列表(即部署集群时所需的各个机器资源)。具体的,任务流的初始参数的具体表现逻辑如下所示:
{
"auditId": 2558,
"db_version": "6.2.4",
"appId": 11075,
"moduleVersions": "",
"masterPerMachine": 1,
"maxMemory": 4096,
"redisServerMachineList": [10.11.199.83,10.11.199.69,10.11.199.159, 10.11.207.87]
}
在上述具体表现逻辑中,auditId代表审核任务ID,db_version代表集群的安装版本,appId代表申请当前应用的ID,masterPerMachine代表每个机器资源上所部署的节点的数量,maxMemory代表每个节点所占用的内存大小,redisServerMachineList代表当前分配的机器资源列表。
任务流的动态参数包括但不限于为:待启动节点的子任务信息、节点所属的机器资源、主节点所属的机器资源、用于部署数据库集群的节点、节点的类型、子任务的预设唯一标识、节点的最大内存、任务ID。具体的,任务流的动态参数的具体表现逻辑如下所示:
{
"auditId": 2558,
"db_version": "6.2.4",
"appId": 11075,
"redisServerNodes": [{
"masterPort": 0,
"slave": false,
"role": 1,
"uniqKey": "10.11.199.83-6450",
"masterHost": "",
"port": 6450,
"maxmemory": 4096,
"ip": "10.11.199.83",
"taskId": 3873,
"master": true]}
}
在上述具体表现逻辑中,redisServerNodes代表待启动节点的子任务信息,ip代表节点所属的机器资源,port代表机器资源的端口,masterHost代表主节点所属的机器资源,slave表示节点的类型为从节点,uniqKey代表子任务的预设唯一标识,maxmemory代表节点的最大内存,taskId代表任务ID。
S106:对任务流的运行参数进行初始化。
其中,对任务流的运行参数进行初始化,为本领域技术人员所熟悉的公知常识,这里不再赘述。
S107:在确定用于部署集群的机器资源为可用的情况下,生成任务流的集群实例序列。
其中,集群实例序列包括与任务流中每个子任务对应的集群实例,每个集群实例均用于执行与自身对应的子任务,且各个集群实例按照任务流中各个子任务的执行顺序进行排序。
S108:按照序位由前至后的顺序,依次执行集群实例序列中的各个集群实例。
其中,每个集群实例需等待前一位集群实例执行成功后,才能开始执行,以此类推,直至集群实例序列中的所有集群实例均都执行成功后,确定任务流执行成功。当集群部署任务中所包含的各个任务流均执行成功后,则可确定集群部署任务执行成功。
具体的,每个集群实例的具体启动过程,包括但不限于为:
1、触发节点初始化参数。
2、对预先创建的配置文件进行校验。
3、对预先创建的目录权限进行校验。
4、获取集群的二进制包。
5、向服务器推送预先设的集群配置。
6、启动集群服务。
7、检测集群服务的运行状态。
需要说明的是,上述所示的每个具体步骤,除第一个步骤之外的其它步骤,都需在前一个步骤成功执行后才开始执行。另外,上述所示的各个步骤仅仅用于举例说明,集群实例的启动过程还可以基于其它现有技术进行实现,本申请实施例不再赘述。
S109:获取每个集群实例的状态信息,并基于每个集群实例的状态信息,生成任务流的执行日志。
其中,集群实例的状态信息包括但不限于为:与集群实例对应的子任务的名称、状态、执行时间、运行子任务的机器资源、启动时间、结束时间等。
需要说明的是,根据任务流的执行日志,可以方便用户随时跟踪任务流的执行状况。
S110:对于每个集群实例,在检测到集群实例无法正常执行时,将与集群实例对应的子任务的状态设为运行失败,并通过预设界面提示用户任务流中存在运行失败的子任务。
S111:依据用户对运行失败的子任务的触发操作,对运行失败的子任务进行重试操作,使得运行失败的子任务成功运行。
S112:在运行失败的子任务成功运行后,确定集群实例成功执行,并将与集群实例对应的子任务的状态更新为运行成功。
S113:在集群实例序列中的每个集群实例均成功执行后,确定集群部署任务完成,并向用户发送集群部署成功提示。
S114:对用于部署集群的节点进行加密。
其中,对用于部署集群的节点进行加密的具体实现过程,为本领域技术人员所熟悉的公知常识,这里不再赘述。
综上所述,本实施例将数据库集群部署过程拆分为多个部署步骤,并将用于实现部署步骤的执行逻辑封装为子任务,当用户需要部署数据库集群时,利用任务流的集群实例序列,实现按照各个部署步骤的操作顺序,执行与每个部署步骤对应的子任务,从而完成对数据库集群的部署。相较于现有技术,用户无需熟悉每个部署步骤的操作顺序,也无需参与每个部署步骤的操作,避免人为因素所产生的失误操作,减少部署过程所耗费的时间,从而有效提高数据库集群的部署效率。
需要说明的是,上述实施例的提及的S110,为本申请所述基于数据库部署的任务流控制方法的一种可选的实现方式。此外,上述实施例提及的S111,也为本申请所述基于数据库部署的任务流控制方法的一种可选的实现方式。为此,上述实施例的提及的流程,可以概括为图2所述的方法。
如图2所示,为本申请实施例提供的一种基于数据库部署的任务流控制方法的流程示意图,包括如下步骤:
S201:依据用户预先输入的集群申请信息,配置集群资源信息。
S202:在接收到用户输入的部署指令后,基于集群资源信息,生成集群部署任务。
其中,集群部署任务包括任务流、任务流的基本信息;任务流包括各个预先编排的子任务;子任务预先封装有执行逻辑;执行逻辑用于实现数据库集群部署过程中所需的部署步骤;任务流中各个子任务的执行顺序,与数据库集群部署过程中所需的各个部署步骤的操作顺序相同;基本信息包括用于部署集群的机器资源。
S203:在确定用于部署集群的机器资源为可用的情况下,生成任务流的集群实例序列。
其中,集群实例序列包括与任务流中每个子任务对应的集群实例;每个集群实例均用于执行与自身对应的子任务,且各个集群实例按照任务流中各个子任务的执行顺序进行排序。
S204:按照序位由前至后的顺序,依次执行集群实例序列中的各个集群实例。
S205:在集群实例序列中的每个集群实例均成功执行后,确定集群部署任务完成,并向用户发送集群部署成功提示。
综上所述,本实施例将数据库集群部署过程拆分为多个部署步骤,并将用于实现部署步骤的执行逻辑封装为子任务,当用户需要部署数据库集群时,利用任务流的集群实例序列,实现按照各个部署步骤的操作顺序,执行与每个部署步骤对应的子任务,从而完成对数据库集群的部署。相较于现有技术,用户无需熟悉每个部署步骤的操作顺序,也无需参与每个部署步骤的操作,避免人为因素所产生的失误操作,减少部署过程所耗费的时间,从而有效提高数据库集群的部署效率。
与上述本申请实施例提供的基于数据库部署的任务流控制方法相对应,本申请实施例还提供了一种基于数据库部署的任务流控制装置。
如图3所示,为本申请实施例提供的一种基于数据库部署的任务流控制装置的架构示意图,包括:
信息配置单元100,用于依据用户预先输入的集群申请信息,配置集群资源信息。
任务生成单元200,用于在接收到用户输入的部署指令后,基于集群资源信息,生成集群部署任务;其中,集群部署任务包括任务流、任务流的基本信息和运行参数;任务流包括各个预先编排的子任务;子任务预先封装有执行逻辑;执行逻辑用于实现数据库集群部署过程中所需的部署步骤;任务流中各个子任务的执行顺序,与数据库集群部署过程中所需的各个部署步骤的操作顺序相同;基本信息包括用于部署集群的机器资源。
此外,任务流的运行参数包括用于部署数据库集群的节点。
初始化单元300,用于对任务流的运行参数进行初始化。
实例生成单元400,用于在确定用于部署集群的机器资源为可用的情况下,生成任务流的集群实例序列;集群实例序列包括与任务流中每个子任务对应的集群实例;每个集群实例均用于执行与自身对应的子任务,且各个集群实例按照任务流中各个子任务的执行顺序进行排序。
实例执行单元500,用于按照序位由前至后的顺序,依次执行集群实例序列中的各个集群实例。
日志生成单元600,用于获取每个集群实例的状态信息,并基于每个集群实例的状态信息,生成任务流的执行日志。
其中,集群实例的状态信息包括与集群实例对应的子任务的状态。
提示单元700,用于在集群实例序列中的每个集群实例均成功执行后,确定集群部署任务完成,并向用户发送集群部署成功提示。
其中,提示单元700具体用于:对于每个集群实例,在检测到集群实例无法正常执行时,将与集群实例对应的子任务的状态设为运行失败,并通过预设界面提示用户任务流中存在运行失败的子任务;依据用户对运行失败的子任务的触发操作,对运行失败的子任务进行重试操作,使得运行失败的子任务成功运行;在运行失败的子任务成功运行后,确定集群实例成功执行,并将与集群实例对应的子任务的状态更新为运行成功;在集群实例序列中的每个集群实例均成功执行后,确定集群部署任务完成,并向用户发送集群部署成功提示。
节点加密单元800,用于对用于部署数据库集群的节点进行加密。
综上所述,本实施例将数据库集群部署过程拆分为多个部署步骤,并将用于实现部署步骤的执行逻辑封装为子任务,当用户需要部署数据库集群时,利用任务流的集群实例序列,实现按照各个部署步骤的操作顺序,执行与每个部署步骤对应的子任务,从而完成对数据库集群的部署。相较于现有技术,用户无需熟悉每个部署步骤的操作顺序,也无需参与每个部署步骤的操作,避免人为因素所产生的失误操作,减少部署过程所耗费的时间,从而有效提高数据库集群的部署效率。
本申请还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的程序,其中,程序执行上述本申请提供的基于数据库部署的任务流控制方法。
本申请还提供了一种基于数据库部署的任务流控制设备,包括:处理器、存储器和总线。处理器与存储器通过总线连接,存储器用于存储程序,处理器用于运行程序,其中,程序运行时执行上述本申请提供的基于数据库部署的任务流控制方法,包括如下步骤:
依据用户预先输入的集群申请信息,配置集群资源信息;
在接收到所述用户输入的部署指令后,基于所述集群资源信息,生成集群部署任务;其中,所述集群部署任务包括任务流、所述任务流的基本信息;所述任务流包括各个预先编排的子任务;所述子任务预先封装有执行逻辑;所述执行逻辑用于实现数据库集群部署过程中所需的部署步骤;所述任务流中各个子任务的执行顺序,与所述数据库集群部署过程中所需的各个部署步骤的操作顺序相同;所述基本信息包括用于部署集群的机器资源;
在确定所述用于部署集群的机器资源为可用的情况下,生成所述任务流的集群实例序列;所述集群实例序列包括与所述任务流中每个子任务对应的集群实例;每个所述集群实例均用于执行与自身对应的子任务,且各个所述集群实例按照所述任务流中各个子任务的执行顺序进行排序;
按照序位由前至后的顺序,依次执行所述集群实例序列中的各个集群实例;
在所述集群实例序列中的每个集群实例均成功执行后,确定所述集群部署任务完成,并向用户发送集群部署成功提示。
具体的,在上述实施例的基础上,所述按照序位由前至后的顺序,依次执行所述集群实例序列中的各个集群实例之后,还包括:
获取每个所述集群实例的状态信息,并基于每个所述集群实例的状态信息,生成所述任务流的执行日志。
具体的,在上述实施例的基础上,所述集群实例的状态信息包括与所述集群实例对应的子任务的状态;
所述在所述集群实例序列中的每个集群实例均成功执行后,确定所述集群部署任务完成,并向用户发送集群部署成功提示,包括:
对于每个所述集群实例,在检测到所述集群实例无法正常执行时,将与所述集群实例对应的子任务的状态设为运行失败,并通过预设界面提示所述用户所述任务流中存在运行失败的子任务;
依据所述用户对所述运行失败的子任务的触发操作,对所述运行失败的子任务进行重试操作,使得所述运行失败的子任务成功运行;
在所述运行失败的子任务成功运行后,确定所述集群实例成功执行,并将与所述集群实例对应的子任务的状态更新为运行成功;
在所述集群实例序列中的每个集群实例均成功执行后,确定所述集群部署任务完成,并向用户发送集群部署成功提示。
具体的,在上述实施例的基础上,所述集群部署任务还包括所述任务流的运行参数;
所述在确定所述用于部署集群的机器资源为可用的情况下,生成所述任务流的集群实例序列之前,还包括:
对所述任务流的运行参数进行初始化。
具体的,在上述实施例的基础上,所述集群部署任务还包括所述任务流的运行参数;所述运行参数包括用于部署所述数据库集群的节点;
所述按照序位由前至后的顺序,依次执行所述集群实例序列中的各个集群实例之后,还包括:
对用于部署所述数据库集群的节点进行加密。
本申请实施例方法所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本申请实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种基于数据库部署的任务流控制方法,其特征在于,包括:
依据用户预先输入的集群申请信息,配置集群资源信息;
在接收到所述用户输入的部署指令后,基于所述集群资源信息,生成集群部署任务;其中,所述集群部署任务包括任务流、所述任务流的基本信息;所述任务流包括各个预先编排的子任务;所述子任务预先封装有执行逻辑;所述执行逻辑用于实现数据库集群部署过程中所需的部署步骤;所述任务流中各个子任务的执行顺序,与所述数据库集群部署过程中所需的各个部署步骤的操作顺序相同;所述基本信息包括用于部署集群的机器资源;
在确定所述用于部署集群的机器资源为可用的情况下,生成所述任务流的集群实例序列;所述集群实例序列包括与所述任务流中每个子任务对应的集群实例;每个所述集群实例均用于执行与自身对应的子任务,且各个所述集群实例按照所述任务流中各个子任务的执行顺序进行排序;
按照序位由前至后的顺序,依次执行所述集群实例序列中的各个集群实例;
在所述集群实例序列中的每个集群实例均成功执行后,确定所述集群部署任务完成,并向用户发送集群部署成功提示。
2.根据权利要求1所述的方法,其特征在于,所述按照序位由前至后的顺序,依次执行所述集群实例序列中的各个集群实例之后,还包括:
获取每个所述集群实例的状态信息,并基于每个所述集群实例的状态信息,生成所述任务流的执行日志。
3.根据权利要求2所述的方法,其特征在于,所述集群实例的状态信息包括与所述集群实例对应的子任务的状态;
所述在所述集群实例序列中的每个集群实例均成功执行后,确定所述集群部署任务完成,并向用户发送集群部署成功提示,包括:
对于每个所述集群实例,在检测到所述集群实例无法正常执行时,将与所述集群实例对应的子任务的状态设为运行失败,并通过预设界面提示所述用户所述任务流中存在运行失败的子任务;
依据所述用户对所述运行失败的子任务的触发操作,对所述运行失败的子任务进行重试操作,使得所述运行失败的子任务成功运行;
在所述运行失败的子任务成功运行后,确定所述集群实例成功执行,并将与所述集群实例对应的子任务的状态更新为运行成功;
在所述集群实例序列中的每个集群实例均成功执行后,确定所述集群部署任务完成,并向用户发送集群部署成功提示。
4.根据权利要求1所述的方法,其特征在于,所述集群部署任务还包括所述任务流的运行参数;
所述在确定所述用于部署集群的机器资源为可用的情况下,生成所述任务流的集群实例序列之前,还包括:
对所述任务流的运行参数进行初始化。
5.根据权利要求1所述的方法,其特征在于,所述集群部署任务还包括所述任务流的运行参数;所述运行参数包括用于部署所述数据库集群的节点;
所述按照序位由前至后的顺序,依次执行所述集群实例序列中的各个集群实例之后,还包括:
对用于部署所述数据库集群的节点进行加密。
6.一种基于数据库部署的任务流控制装置,其特征在于,包括:
信息配置单元,用于依据用户预先输入的集群申请信息,配置集群资源信息;
任务生成单元,用于在接收到所述用户输入的部署指令后,基于所述集群资源信息,生成集群部署任务;其中,所述集群部署任务包括任务流、所述任务流的基本信息;所述任务流包括各个预先编排的子任务;所述子任务预先封装有执行逻辑;所述执行逻辑用于实现数据库集群部署过程中所需的部署步骤;所述任务流中各个子任务的执行顺序,与所述数据库集群部署过程中所需的各个部署步骤的操作顺序相同;所述基本信息包括用于部署集群的机器资源;
实例生成单元,用于在确定所述用于部署集群的机器资源为可用的情况下,生成所述任务流的集群实例序列;所述集群实例序列包括与所述任务流中每个子任务对应的集群实例;每个所述集群实例均用于执行与自身对应的子任务,且各个所述集群实例按照所述任务流中各个子任务的执行顺序进行排序;
实例执行单元,用于按照序位由前至后的顺序,依次执行所述集群实例序列中的各个集群实例;
提示单元,用于在所述集群实例序列中的每个集群实例均成功执行后,确定所述集群部署任务完成,并向用户发送集群部署成功提示。
7.根据权利要求6所述的装置,其特征在于,还包括:
日志生成单元,用于获取每个所述集群实例的状态信息,并基于每个所述集群实例的状态信息,生成所述任务流的执行日志。
8.根据权利要求6所述的装置,其特征在于,还包括:
节点加密单元,用于对用于部署所述数据库集群的节点进行加密。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的程序,其中,所述程序执行权利要求1-5任一所述的基于数据库部署的任务流控制方法。
10.一种基于数据库部署的任务流控制设备,其特征在于,包括:处理器、存储器和总线;所述处理器与所述存储器通过所述总线连接;
所述存储器用于存储程序,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1-5任一所述的基于数据库部署的任务流控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111593518.7A CN113986514B (zh) | 2021-12-24 | 2021-12-24 | 基于数据库部署的任务流控制方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111593518.7A CN113986514B (zh) | 2021-12-24 | 2021-12-24 | 基于数据库部署的任务流控制方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113986514A CN113986514A (zh) | 2022-01-28 |
CN113986514B true CN113986514B (zh) | 2022-04-26 |
Family
ID=79734158
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111593518.7A Active CN113986514B (zh) | 2021-12-24 | 2021-12-24 | 基于数据库部署的任务流控制方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113986514B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114490588A (zh) * | 2022-02-11 | 2022-05-13 | 京东科技信息技术有限公司 | 数据库部署方法、装置、电子设备和计算机可读介质 |
CN117668010A (zh) * | 2022-08-31 | 2024-03-08 | 中兴通讯股份有限公司 | 任务处理方法、电子设备以及存储介质 |
CN116737331A (zh) * | 2023-03-27 | 2023-09-12 | 联洋国融(北京)科技有限公司 | 一种智能化任务流编排方法和平台 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110321223A (zh) * | 2019-07-03 | 2019-10-11 | 湖南大学 | Coflow协同作业流调度感知的数据流划分方法与装置 |
CN111984623A (zh) * | 2020-08-14 | 2020-11-24 | 北京人大金仓信息技术股份有限公司 | 数据库集群自动化部署方法、装置、介质和电子设备 |
CN112559159A (zh) * | 2021-01-05 | 2021-03-26 | 广州华资软件技术有限公司 | 一种基于分布式部署的任务调度方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003096669A2 (en) * | 2002-05-10 | 2003-11-20 | Reisman Richard R | Method and apparatus for browsing using multiple coordinated device |
US10033702B2 (en) * | 2015-08-05 | 2018-07-24 | Intralinks, Inc. | Systems and methods of secure data exchange |
-
2021
- 2021-12-24 CN CN202111593518.7A patent/CN113986514B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110321223A (zh) * | 2019-07-03 | 2019-10-11 | 湖南大学 | Coflow协同作业流调度感知的数据流划分方法与装置 |
CN111984623A (zh) * | 2020-08-14 | 2020-11-24 | 北京人大金仓信息技术股份有限公司 | 数据库集群自动化部署方法、装置、介质和电子设备 |
CN112559159A (zh) * | 2021-01-05 | 2021-03-26 | 广州华资软件技术有限公司 | 一种基于分布式部署的任务调度方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113986514A (zh) | 2022-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113986514B (zh) | 基于数据库部署的任务流控制方法和装置 | |
US10871953B2 (en) | Application update method and apparatus | |
KR101130370B1 (ko) | 공용 오퍼레이팅 시스템을 제공하기 위한 방법 및 시스템 | |
Fagg et al. | FT-MPI: Fault tolerant MPI, supporting dynamic applications in a dynamic world | |
CN108255497B (zh) | 一种应用的部署方法及装置 | |
CN110572436A (zh) | 多地跨集群的服务器部署方法及系统 | |
US8443365B2 (en) | Methods and systems to clone a virtual machine instance | |
WO2022016848A1 (zh) | 一种根据服务角色的进行应用部署的方法及装置 | |
JP2006107500A (ja) | ソフトウェアの実行中にソフトウェアを更新すること | |
EP2438515A2 (en) | System and method for converting a java application into a virtual server image for cloud deployment | |
CN111198695A (zh) | 微服务治理管理平台的自动化部署方法和电子设备 | |
US8027817B2 (en) | Simulation management within a grid infrastructure | |
KR102524540B1 (ko) | 멀티 클라우드 서비스 플랫폼 장치 및 방법 | |
CN111708550A (zh) | 应用部署方法、装置、计算机设备及存储介质 | |
US6922796B1 (en) | Method and apparatus for performing failure recovery in a Java platform | |
CN108234174B (zh) | 虚拟网络功能的管理方法和装置 | |
EP1389314A2 (en) | Method and apparatus for providing application specific strategies to a java platform including start and stop policies | |
CN115794372A (zh) | 一种跨语言应用系统间通信的方法、系统 | |
CN113254022A (zh) | 分布式编译系统和方法 | |
CN117193800A (zh) | 一种软件安装方法、装置、电子设备与存储介质 | |
da Silva Costa et al. | Diversity on state machine replication | |
CN109271179B (zh) | 虚拟机应用程序管理方法、装置、设备及可读存储介质 | |
CN112035295A (zh) | 一种虚拟机崩溃事件处理方法、系统、终端及存储介质 | |
CN112003744B (zh) | 一种云平台服务集群的备份恢复方法及系统 | |
US11847015B2 (en) | Mechanism for integrating I/O hypervisor with a combined DPU and server solution |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |