CN111552541B - 通过命令桥工厂实现调度的方法、系统及计算机存储介质 - Google Patents
通过命令桥工厂实现调度的方法、系统及计算机存储介质 Download PDFInfo
- Publication number
- CN111552541B CN111552541B CN202010361501.8A CN202010361501A CN111552541B CN 111552541 B CN111552541 B CN 111552541B CN 202010361501 A CN202010361501 A CN 202010361501A CN 111552541 B CN111552541 B CN 111552541B
- Authority
- CN
- China
- Prior art keywords
- command bridge
- deployment mode
- deployment
- scheduling
- information
- 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
- 238000000034 method Methods 0.000 title claims abstract description 67
- 238000009434 installation Methods 0.000 claims description 5
- 230000006870 function Effects 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- General Factory Administration (AREA)
Abstract
本发明涉及通过命令桥工厂实现调度的方法、系统及计算机存储介质,其方法,包括以下步骤,S1,根据业务需求在支持x86和容器化部署的多种部署模式中选择对应的一个部署模式,并记录选取的所述部署模式的信息;S2,根据选取的所述部署模式的信息,在命令桥工厂中创建出集体命令桥实现实例;S3,调用所述集体命令桥实现实例中的方法,完成选取的所述部署模式的调度。本发明通过命令桥工厂实现调度的方法、系统及计算机存储介质,采用同时支持x86和容器化部署的分布式调度,可以任意选择部署模式,不用修改代码,对业务透明无影响。
Description
技术领域
本发明涉及计算机技术领域,具体涉及通过命令桥工厂实现调度的方法、系统及计算机存储介质。
背景技术
随着docker技术的不断成熟,其优势持续集成、版本控制、可移植性、隔离性和安全性吸引了越来越多的企业开始使用docker。容器化实现更轻量级的虚拟化,方便快速部署,节省成本,弹性伸缩。分布式调度框架传统的部署模式是安装、配置、运行,集群部署多台x86机器就需要保持其环境一致,其部署环境需要时间成本和人力成本。为了适应企业的发展,对接其他平台,分布式后台调度需要实现容器化,在现有的部署方式下,同时支持x86部署和docker容器化部署是目前亟待解决的问题。
发明内容
本发明所要解决的技术问题是提供通过命令桥工厂实现调度的方法、系统及计算机存储介质,可以实现同时支持x86和容器化部署的分布式调度。
本发明解决上述技术问题的技术方案如下:通过命令桥工厂实现调度的方法,包括以下步骤,
S1,根据业务需求在支持x86和容器化部署的多种部署模式中选择对应的一个部署模式,并记录选取的所述部署模式的信息;
S2,根据选取的所述部署模式的信息,在命令桥工厂中创建出集体命令桥实现实例;
S3,调用所述集体命令桥实现实例中的方法,完成选取的所述部署模式的调度。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述部署模式设有三种,分别为传统部署模式、第一容器化部署模式和第二容器化部署模式;
所述传统部署模式为,安装、配置和运行;
所述第一容器化部署模式为,将所述传统部署模式中的x86节点管理者作为一个容器;
所述第二容器化部署模式为,独立部署进程,一个容器里面执行一个进程;
所述传统部署模式的信息包括关键字为Machine,所述第一容器化部署模式的信息包括关键字为Captain,所述第二容器化部署模式的信息包括关键字为Worker。
进一步,所述S1具体为,
根据业务需求从三种部署模式对应的三个关键字Machine、Captain和Worker中选择对应的关键字,并将选取的关键字记录到集群属性中。
进一步,将选取的关键字记录到集群属性中,具体包括,
设置集群的配置信息FailoverType为选取的关键字,并将集群的配置信息注册到zookeeper上。
进一步,所述命令桥工厂的命令桥接口中配置有调度方法,各种所述部署模式均实现所述命令桥接口。
进一步,所述命令桥工厂根据所述调度方法创建出该调度方法的命令桥,所述命令桥用于实现所述命令桥接口中的调度方法。
进一步,所述S3具体为,
将所述集体命令桥实现实例存放在CommanderData中,并在主函数中直接调用所述集体命令桥实现实例中的方法。
基于上述所述的通过命令桥工厂实现调度的方法,本发明还提供通过命令桥工厂实现调度的系统。
通过命令桥工厂实现调度的系统,包括以下模块,
部署模式选择模块,其用于根据业务需求在支持x86和容器化部署的多种部署模式中选择对应的一个部署模式,并记录选取的所述部署模式的信息;
集体命令桥实现实例创建模块,其用于根据选取的所述部署模式的信息,在命令桥工厂中创建出集体命令桥实现实例;
调度模块,其用于调用所述集体命令桥实现实例中的方法,完成选取的所述部署模式的调度。
基于上述所述的通过命令桥工厂实现调度的方法,本发明还提供通过计算机存储介质。
计算机存储介质,包括存储器,以及存储在所述存储器上的计算机程序,当所述计算机程序被处理器执行时实现如上述所述的方法步骤。
本发明的有益效果是:本发明通过命令桥工厂实现调度的方法、系统及计算机存储介质,采用同时支持x86和容器化部署的分布式调度,可以任意选择部署模式,不用修改代码,对业务透明无影响。
附图说明
图1为本发明通过命令桥工厂实现调度的方法的流程图;
图2为集体命令桥实现的类图说明示意图。
图3为本发明通过命令桥工厂实现调度的系统的结构框图;
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图1所示,通过命令桥工厂实现调度的方法,包括以下步骤,
S1,根据业务需求在支持x86和容器化部署的多种部署模式中选择对应的一个部署模式,并记录选取的所述部署模式的信息;
S2,根据选取的所述部署模式的信息,在命令桥工厂中创建出集体命令桥实现实例;
S3,调用所述集体命令桥实现实例中的方法,完成选取的所述部署模式的调度。
在本发明中:在分布式调度框架中根据集群的部署方式来区分调度算法模式,一种是传统模式,一种是容器化模式,容器化模式又分为两种,一种是将传统模式中的x86节点管理者作为一个容器,另一种是独立部署进程,一个容器里面执行一个进程。具体的,所述部署模式设有三种,分别为传统部署模式、第一容器化部署模式和第二容器化部署模式;
所述传统部署模式为,安装、配置和运行。
所述第一容器化部署模式为,将所述传统部署模式中的x86节点管理者作为一个容器;该方法可以快速对接容器化,同时管理者可以管理调度本容器内的进程,减少进程之通讯的代价。
所述第二容器化部署模式为,独立部署进程,一个容器里面执行一个进程;该方法更接近容器化的模式。
所述传统部署模式的信息包括关键字为Machine,所述第一容器化部署模式的信息包括关键字为Captain,所述第二容器化部署模式的信息包括关键字为Worker。
图2为集体命令桥实现的类图说明:WorkerInstructionBridge接口包含了getHostPort、initRunningEnv、removeDeprecateWorker和dealJobAssign四个接口方法,类WorkerInstructionBridgeMachine、WorkerInstructionBridgeCaptain和WorkerInstructionBridgeDocker分别代表的是对上述接口的三种不同实现。WorkerInstructionBridgeFactory类是一个工厂模式类,主要是用来创建上述接口,并且根据传入的参数创建不同的实现实例。
以上述三种部署模式为例说明本发明的方法:
步骤1:选择Machine、Captain、worker类型,设置集群的配置信息FailoverType为其中一个,并将集群的配置信息注册到zookeeper上;
步骤2:在使用调度算法的时候调用工厂创建出集体命令桥实现实例,其工厂创建代码如下:
public static WorkerInstructionBridge createWorkerInstructionBridge(CommanderData data)throws Exception{
if(data.getClusterInfo().getFailoverType().
equals(ClusterInfo.FAILOVER_TYPE_MACHINE)){
return new WorkerInstructionBridgeMachine(data);
}
else if(data.getClusterInfo().getFailoverType().
equals(ClusterInfo.FAILOVER_TYPE_CAPTAIN)){
return new WorkerInstructionBridgeCaptain(data);
}
else{
return new WorkerInstructionBridgeDocker(data);
}
}
上述代码的思想为:根据所传入的CommanderData数据集中的FailoverType进行判断创建哪种实例。如果获取的是FailoverType等于FAILOVER_TYPE_MACHINE,就创建X86实例;如果获取的FailoverType等于FAILOVER_TYPE_CAPTAIN,就创建以captain作为容器的实例;如果其他的情况,就创建按照worker作为容器的实例。
步骤3:当集体命令桥实现实例创建出来后,将集体命令桥实现实例存放在CommanderData中,在主函数中直接调用集体命令桥实现实例的方法即可;
调用模式如下:
data.getWorkerInstructionBridgeFactory().getHostPort(),即从传入data数据中获取命令桥工厂信息及HostPort信息。以该方法为例,该方法在三个实现类中分别实现适应自身模式的代码。依次类推,在选定模式后,工厂就会创建出一系列的实现本模式的接口供调用,从而完成了模式的任意选择。
基于上述所述的通过命令桥工厂实现调度的方法,本发明还提供通过命令桥工厂实现调度的系统。
如图3所示,通过命令桥工厂实现调度的系统,包括以下模块,
部署模式选择模块,其用于根据业务需求在支持x86和容器化部署的多种部署模式中选择对应的一个部署模式,并记录选取的所述部署模式的信息;
集体命令桥实现实例创建模块,其用于根据选取的所述部署模式的信息,在命令桥工厂中创建出集体命令桥实现实例;
调度模块,其用于调用所述集体命令桥实现实例中的方法,完成选取的所述部署模式的调度。
基于上述所述的通过命令桥工厂实现调度的方法,本发明还提供通过计算机存储介质。
计算机存储介质,包括存储器,以及存储在所述存储器上的计算机程序,当所述计算机程序被处理器执行时实现如上述所述的方法步骤。
本发明通过命令桥工厂实现调度的方法、系统及计算机存储介质,采用同时支持x86和容器化部署的分布式调度,可以任意选择部署模式,不用修改代码,对业务透明无影响。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.通过命令桥工厂实现调度的方法,其特征在于:包括以下步骤,
S1,根据业务需求在支持x86和容器化部署的多种部署模式中选择对应的一个部署模式,并记录选取的所述部署模式的信息;
S2,根据选取的所述部署模式的信息,在命令桥工厂中创建出集体命令桥实现实例;
S3,调用所述集体命令桥实现实例中的方法,完成选取的所述部署模式的调度;
所述部署模式设有三种,分别为传统部署模式、第一容器化部署模式和第二容器化部署模式;
所述传统部署模式为,安装、配置和运行;
所述第一容器化部署模式为,将所述传统部署模式中的x86节点管理者作为一个容器;
所述第二容器化部署模式为,独立部署进程,一个容器里面执行一个进程;
所述传统部署模式的信息包括关键字为Machine,所述第一容器化部署模式的信息包括关键字为Captain,所述第二容器化部署模式的信息包括关键字为Worker;
所述命令桥工厂的命令桥接口中配置有调度方法,各种所述部署模式均实现所述命令桥接口;所述命令桥工厂根据所述调度方法创建出该调度方法的命令桥,所述命令桥用于实现所述命令桥接口中的调度方法;
集体命令桥具体为WorkerInstructionBridge接口,WorkerInstructionBridge接口包含了getHostPort、initRunningEnv、removeDeprecateWorker和dealJobAssign四个接口方法,类WorkerInstructionBridgeMachine、WorkerInstructionBridgeCaptain和WorkerInstructionBridgeDocker分别是对WorkerInstructionBridge接口的三种不同实现;WorkerInstructionBridgeFactory类是一个工厂模式类,其用来创建WorkerInstructionBridge接口,并且根据传入的参数创建不同的实现实例;
所述S2具体为:根据所传入的CommanderData数据集中的FailoverType进行判断创建哪种实例;如果获取的是FailoverType等于FAILOVER_TYPE_MACHINE,就创建X86实例;如果获取的FailoverType等于FAILOVER_TYPE_CAPTAIN,就创建以captain作为容器的实例;如果获取的是其他的情况,就创建按照worker作为容器的实例;
所述S3具体为:将所述集体命令桥实现实例存放在CommanderData中,并在主函数中直接调用所述集体命令桥实现实例中的方法;
其中,调用模式如下:从传入data数据中获取命令桥工厂信息及HostPort信息。
2.根据权利要求1所述的通过命令桥工厂实现调度的方法,其特征在于:所述S1具体为,
根据业务需求从三种部署模式对应的三个关键字Machine、Captain和Worker中选择对应的关键字,并将选取的关键字记录到集群属性中。
3.根据权利要求2所述的通过命令桥工厂实现调度的方法,其特征在于:将选取的关键字记录到集群属性中,具体包括,
设置集群的配置信息FailoverType为选取的关键字,并将集群的配置信息注册到zookeeper上。
4.通过命令桥工厂实现调度的系统,其特征在于:包括以下模块,
部署模式选择模块,其用于根据业务需求在支持x86和容器化部署的多种部署模式中选择对应的一个部署模式,并记录选取的所述部署模式的信息;
集体命令桥实现实例创建模块,其用于根据选取的所述部署模式的信息,在命令桥工厂中创建出集体命令桥实现实例;
调度模块,其用于调用所述集体命令桥实现实例中的方法,完成选取的所述部署模式的调度;
所述部署模式设有三种,分别为传统部署模式、第一容器化部署模式和第二容器化部署模式;
所述传统部署模式为,安装、配置和运行;
所述第一容器化部署模式为,将所述传统部署模式中的x86节点管理者作为一个容器;
所述第二容器化部署模式为,独立部署进程,一个容器里面执行一个进程;
所述传统部署模式的信息包括关键字为Machine,所述第一容器化部署模式的信息包括关键字为Captain,所述第二容器化部署模式的信息包括关键字为Worker;
所述命令桥工厂的命令桥接口中配置有调度方法,各种所述部署模式均实现所述命令桥接口;所述命令桥工厂根据所述调度方法创建出该调度方法的命令桥,所述命令桥用于实现所述命令桥接口中的调度方法;
集体命令桥具体为WorkerInstructionBridge接口,WorkerInstructionBridge接口包含了getHostPort、initRunningEnv、removeDeprecateWorker和dealJobAssign四个接口方法,类WorkerInstructionBridgeMachine、WorkerInstructionBridgeCaptain和WorkerInstructionBridgeDocker分别是对WorkerInstructionBridge接口的三种不同实现;WorkerInstructionBridgeFactory类是一个工厂模式类,其用来创建WorkerInstructionBridge接口,并且根据传入的参数创建不同的实现实例;
所述集体命令桥实现实例创建模块具体用于:根据所传入的CommanderData数据集中的FailoverType进行判断创建哪种实例;如果获取的是FailoverType等于FAILOVER_TYPE_MACHINE,就创建X86实例;如果获取的FailoverType等于FAILOVER_TYPE_CAPTAIN,就创建以captain作为容器的实例;如果获取的是其他的情况,就创建按照worker作为容器的实例;
所述调度模块具体用于:将所述集体命令桥实现实例存放在CommanderData中,并在主函数中直接调用所述集体命令桥实现实例中的方法;
其中,调用模式如下:从传入data数据中获取命令桥工厂信息及HostPort信息。
5.计算机存储介质,其特征在于:包括存储器,以及存储在所述存储器上的计算机程序,当所述计算机程序被处理器执行时实现如权利要求1至3任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010361501.8A CN111552541B (zh) | 2020-04-30 | 2020-04-30 | 通过命令桥工厂实现调度的方法、系统及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010361501.8A CN111552541B (zh) | 2020-04-30 | 2020-04-30 | 通过命令桥工厂实现调度的方法、系统及计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111552541A CN111552541A (zh) | 2020-08-18 |
CN111552541B true CN111552541B (zh) | 2023-11-10 |
Family
ID=72002575
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010361501.8A Active CN111552541B (zh) | 2020-04-30 | 2020-04-30 | 通过命令桥工厂实现调度的方法、系统及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111552541B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106776212A (zh) * | 2016-12-09 | 2017-05-31 | 中电科华云信息技术有限公司 | 容器集群部署多进程应用的监管系统及方法 |
CN107003862A (zh) * | 2014-09-30 | 2017-08-01 | 亚马逊技术有限公司 | 动态代码部署和版本化 |
CN108205481A (zh) * | 2016-12-19 | 2018-06-26 | 华为技术有限公司 | 应用的容器实例创建方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160212012A1 (en) * | 2013-08-30 | 2016-07-21 | Clearpath Networks, Inc. | System and method of network functions virtualization of network services within and across clouds |
US10783017B2 (en) * | 2018-05-16 | 2020-09-22 | ChartIQ, Inc. | System and method for integrating multiple applications |
-
2020
- 2020-04-30 CN CN202010361501.8A patent/CN111552541B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107003862A (zh) * | 2014-09-30 | 2017-08-01 | 亚马逊技术有限公司 | 动态代码部署和版本化 |
CN106776212A (zh) * | 2016-12-09 | 2017-05-31 | 中电科华云信息技术有限公司 | 容器集群部署多进程应用的监管系统及方法 |
CN108205481A (zh) * | 2016-12-19 | 2018-06-26 | 华为技术有限公司 | 应用的容器实例创建方法和装置 |
Non-Patent Citations (2)
Title |
---|
Jay Shah 等.Building Modern Clouds: Using Docker, Kubernetes & Google Cloud Platform.《2019 IEEE 9th Annual Computing and Communication Workshop and Conference (CCWC)》.2019,第0184-0189页. * |
付琳琳 等.微服务容器化部署的研究.计算技术与自动化.2019,第38卷(第04期),第151-155页. * |
Also Published As
Publication number | Publication date |
---|---|
CN111552541A (zh) | 2020-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109885316B (zh) | 基于kubernetes的hdfs-hbase部署方法及装置 | |
CN104137482A (zh) | 一种云计算架构下的容灾数据中心配置方法及装置 | |
US20050091352A1 (en) | Policy driven autonomic computing-specifying relationships | |
CN108762900A (zh) | 高频任务调度方法、系统、计算机设备和存储介质 | |
CN104115447A (zh) | 一种云计算架构下的容灾方案配置方法及装置 | |
CN113204353B (zh) | 一种大数据平台组件部署方法及装置 | |
CN112148788A (zh) | 异构数据源的数据同步方法及系统 | |
CN101980207B (zh) | 一种数据库访问的实现方法和系统 | |
CN111736994B (zh) | 资源编排方法、系统及存储介质和电子设备 | |
CN110532058B (zh) | 容器集群服务的管理方法、装置、设备及可读存储介质 | |
CN103399781A (zh) | 云服务器及其虚拟机管理方法 | |
CN102314368A (zh) | 更新服务器程序的配置数据的方法及设备 | |
EP3817339B1 (en) | Method and system for management of an artificial intelligence development platform | |
CN111897599A (zh) | 基于微核模型插件模式的服务方法、装置、设备及存储介质 | |
CN117075930B (zh) | 一种计算框架管理系统 | |
CN114756374A (zh) | 一种异构cpu调度的方法、装置、设备及介质 | |
CN113312147A (zh) | 一种对象存储跨集群海量数据迁移方法及系统 | |
CN114610334A (zh) | 产品可视化部署方法、装置、系统及存储介质 | |
US20050071449A1 (en) | Policy driven autonomic computing-programmatic policy definitions | |
CN111552541B (zh) | 通过命令桥工厂实现调度的方法、系统及计算机存储介质 | |
CN104794000B (zh) | 一种作业调度方法及系统 | |
CN102339323B (zh) | 一种针对db2数据仓库进行数据抽取、调度及展现的方法 | |
CN115357433A (zh) | 容器环境下的数据库备份方法、装置、设备及存储介质 | |
CN115687469A (zh) | 一种基于DataX的DAG数据的任务调度方法和系统 | |
US20200311477A1 (en) | Distributed system for scalable active learning |
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 |