CN106874047A - 分布式系统调度方法、装置及分布式系统 - Google Patents
分布式系统调度方法、装置及分布式系统 Download PDFInfo
- Publication number
- CN106874047A CN106874047A CN201710056512.3A CN201710056512A CN106874047A CN 106874047 A CN106874047 A CN 106874047A CN 201710056512 A CN201710056512 A CN 201710056512A CN 106874047 A CN106874047 A CN 106874047A
- Authority
- CN
- China
- Prior art keywords
- scheduling
- plug
- unit
- user defined
- basis
- 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.)
- Granted
Links
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/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- 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
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
技术领域
本发明涉及分布式技术领域,特别是涉及一种分布式系统调度方法、装置及分布式系统。
背景技术
调度策略往往是分布式系统的核心功能,在分布式系统的实际使用中,对不同业务场景,往往会有不同的调度策略。比如,有些业务需要优先调度在有依赖数据的机器上,某些业务可能需要在某一个特定的时间段,申请不同的资源。这样,单一的调度策略往往无法满足这些需求。
针对这种问题,现有的分布式调度系统一般是针对每种业务,提供一种调度策略,以实现多业务需求。这种方案对于普通的用户来讲使用简单,易于理解,能够实现的功能大而全。但是需要分布式系统的实现者完全满足所有的业务需要也是非常困难的,每当用户有新的业务需求或者不同的调度策略,需要重新进行更新,而且很容易造成两个不同应用之间使用的策略进行相互干扰。
由此,需要一种新的分布式系统的调度方案以满足不同场景下的调度策略。
发明内容
本发明的主要目的在于提供一种能够满足不同场景下的调度策略的分布式系统调度方法、装置及分布式系统。
根据本发明的一个方面,提供了一种分布式系统调度方法,用于对多个业务节点进行任务调度,包括:响应于用户的插件插入请求,在指定插件接口处插入用户自定义插件,其中,一个或多个插件接口分别部署在预先部署好的一个或多个基础调度插件中的至少一个之前或之后,一个或多个基础调度插件分别实现调度过程中的预定功能,用户自定义插件用于实现与调度相关的用户自定义功能;使用一个或多个基础调度插件以及所插入的用户自定义插件执行任务调度。
由此,可以通过插件分解分布式系统的调度过程,将调度过程插件化。其中调度过程的通用功能可以由基础调度插件实现,对于不同的业务场景,用户仅需要根据调度过程中需要修改的部分创建相应的用户自定义插件,并将该插件插入指定的接口,即可以使用预先部署好的基础调度插件以及用户自定义插件来执行任务调度,从而可以满足该业务场景下的调度需求,并且在满足用户个性化调度需求的同时还可以降低用户的开发成本。
优选地,该分布式系统调度方法还可以包括:部署一个或多个基础调度插件;在至少一个基础调度插件之前或之后部署插件接口,用于插入用户自定义插件。
由此在整个调度过程中可以设计不同的插件接口,不同的插件接口可以适于用户插入用于实现不同的调度逻辑的用户自定义插件,从而可以灵活地满足用户不同的个性化调度需求。
优选地,每个插件接口均默认没有插入用户自定义插件,并且响应于在插件接口处插入了用户自定义插件,根据插件接口与一个或多个基础调度插件之间的关系,使用一个或多个基础调度插件和用户自定义插件执行任务调度。
由此可以增设一个用于检测插件接口是否插有用户自定义插件的检测步骤,在检测到插件接口插入了用户自定义插件时,就可以根据插件接口和基础调度插件之间的关系,来执行任务调度。
优选地,基础调度插件可以包括:调度策略执行插件,用于根据调度策略向目标业务节点发送调度指令,插件接口包括:调度策略执行前插件接口,部署在调度策略执行插件之前,适于插入用户自定义的调度策略执行前插件,调度策略执行前插件适于对调度策略进行调整或生成新的调度策略;和/或调度策略执行后插件接口,部署在调度策略执行插件之后,适于插入用户自定义的调度策略执行后插件,调度策略执行后插件适于获取调度策略的执行结果和/或清理或恢复任务调度过程中遗留的数据。
优选地,基础调度插件可以包括:调度策略生成插件,用于根据所收集到的调度用数据生成调度策略,插件接口包括:调度策略生成前插件接口,部署在调度策略生成插件之前,适于插入用户自定义的调度策略生成前插件,调度策略生成前插件适于修改调度用数据和/或获取外部信息以扩充调度用数据。
优选地,基础调度插件包括:调度决策准备插件,用于从目标业务节点收集调度用数据,插件接口包括:调度决策准备前插件接口,部署在调度决策准备插件之前,适于插入用户自定义的调度决策准备前插件,调度决策准备前插件适于向用于执行要调度的任务的应用实例发送指令和/或收集应用实例的相关信息。
由此,可以部署多个不同的基础调度插件,多个基础调度插件可以用于实现通用的调度功能,在不同的基础调度插件之前或之后可以部署相应的插件接口,不同的插件接口可以插入可以执行不同的调度逻辑的用户自定义插件。
根据本发明的另一个方面,还提供了一种分布式系统调度装置,用于对多个业务节点进行任务调度,包括:插件插入装置,用于响应于用户的插件插入请求,在指定插件接口处插入用户自定义插件,其中,一个或多个插件接口分别部署在预先部署好的一个或多个基础调度插件中的至少一个之前或之后,一个或多个基础调度插件分别实现调度过程中的预定功能,用户自定义插件用于实现与调度相关的用户自定义功能;调度装置,用于使用一个或多个基础调度插件以及所插入的用户自定义插件执行任务调度。
优选地,该分布式系统调度装置还可以包括:基础调度插件部署装置,用于部署一个或多个基础调度插件;插件接口部署装置,用于在至少一个基础调度插件之前或之后部署插件接口,用于插入用户自定义插件。
优选地,每个插件接口均默认没有插入用户自定义插件,并且响应于在插件接口处插入了用户自定义插件,根据插件接口与一个或多个基础调度插件之间的关系,使用一个或多个基础调度插件和用户自定义插件执行任务调度。
优选地,基础调度插件包括:调度策略执行插件,用于根据调度策略向目标业务节点发送调度指令,插件接口包括:调度策略执行前插件接口,部署在调度策略执行插件之前,适于插入用户自定义的调度策略执行前插件,调度策略执行前插件适于对调度策略进行调整或生成新的调度策略;和/或调度策略执行后插件接口,部署在调度策略执行插件之后,适于插入用户自定义的调度策略执行后插件,调度策略执行后插件适于获取调度策略的执行结果和/或清理或恢复任务调度过程中遗留的数据。
优选地,基础调度插件可以包括:调度策略生成插件,用于根据所收集到的调度用数据生成调度策略,插件接口包括:调度策略生成前插件接口,部署在调度策略生成插件之前,适于插入用户自定义的调度策略生成前插件,调度策略生成前插件适于修改调度用数据和/或获取外部信息以扩充调度用数据。
优选地,基础调度插件包括:调度决策准备插件,用于从目标业务节点收集调度用数据,插件接口包括:调度决策准备前插件接口,部署在调度决策准备插件之前,适于插入用户自定义的调度决策准备前插件,调度决策准备前插件适于向用于执行要调
根据本发明的另一个方面,还提供了一种分布式系统,包括:多个业务节点;以及调度节点,用于对多个业务节点进行任务调度,其中,调度节点上部署有一个或多个基础调度插件,一个或多个基础调度插件分别实现调度过程中的预定功能,在至少一个基础调度插件之前或之后部署有插件接口,用于插入用户自定义插件,调度节点响应于用户的插件插入请求,在指定插件接口处插入用户自定义插件,用户自定义插件用于实现与调度相关的用户自定义功能,调度节点使用一个或多个基础调度插件以及所插入的用户自定义插件,在多个业务节点之间执行任务调度。
利用本发明的分布式系统调度方法、装置及分布式系统,可以通过插件分解分布式系统的调度过程,将调度过程插件化。其中调度过程的通用功能可以由基础调度插件实现,对于不同的业务场景,用户仅需要根据调度过程中需要修改的部分创建相应的用户自定义插件,并将该插件插入指定的接口,即可以使用预先部署好的基础调度插件以及用户自定义插件来执行任务调度,从而可以满足该业务场景下的调度需求,并且在满足用户个性化调度需求的同时还可以降低用户的开发成本。。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1是示出了根据本发明一实施例的分布式系统的功能框图。
图2是示出了根据本发明一实施例的分布式系统调度方法的示意性流程图。
图3是示出了本发明的基础调度插件、插件接口以及用户自定义插件可以具有的类别及三者之间的关系的示意图。
图4是示出了根据本发明一实施例的分布式系统调度装置的功能框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
如前所述,在不同的业务场景下往往需要不同的调度策略。为了能够满足不同场景下的调度需求,本发明提出了一种新的分布式系统的调度方案。简要来说,本发明的调度方案通过将分布式系统的调度过程插件化,将调度过程分解为一个或多个基础调度插件和一个或多个插件接口,用户可以根据自己的调度需求创建相应的用户自定义插件,通过将所创建的用户自定义插件插入指定的插件接口,即可以使用预先部署好的基础调度插件以及用户自定义插件来执行任务调度,从而可以满足该业务场景下的调度需求,并且在满足用户个性化调度需求的同时还可以降低用户的开发成本。
下面将参照图1至图4来具体地描述本发明的实施例。图1是示出了根据本发明一实施例的分布式系统100的功能框图。
如图1所示,分布式系统100包括调度节点110和一个或多个业务节点120。调度节点110和业务节点120均可以部署在服务器中。作为优选实施例,不同的业务节点120可以部署在不同的服务器中,并且调度节点110可以部署在不同于业务节点120的一个独立的服务器中,也可以和其中一个业务节点120部署在同一个服务器中。
业务节点120可以运行一个或多个任务,调度节点110可以通过发送调度指令对多个业务节点120进行任务调度。
具体地,调度节点110上可以部署有一个或多个基础调度插件,这些基础调度插件可以分别实现调度过程中的预定功能,在至少一个基础调度插件之前或之后可以部署有用于插入用户自定义插件的插件接口。
调度节点110可以响应于用户的插件插入请求,在指定插件接口处插入用户自定义插件,用户自定义插件用于实现与调度相关的用户自定义功能。由此调度节点110可以使用一个或多个基础调度插件以及所插入的用户自定义插件,在多个业务节点120之间执行任务调度。
调度节点110的具体处理过程可以参见图2,图2是示出了根据本发明一实施例的分布式系统调度方法的示意性流程图。
参见图2,方法200可以开始于步骤S210,也可以开始于步骤S203,下面就方法200开始于步骤S203时进行说明。首先在步骤S203,部署一个或多个基础调度插件。其中基础调度插件可以用于实现调度过程中的预定功能,例如基础调度插件可以用于实现调度过程中通用的调度功能。
接下来,在步骤S205,在至少一个基础调度插件之前或之后部署插件接口,用于插入用户自定义插件。其中所部署的插件接口适于插入的用户自定义插件能够实现的功能可以与该插件接口之前或之后的基础调度插件的执行逻辑相适应。下文将结合附图详细说明基础调度插件、插件接口以及用户自定义插件可以具有的功能及类别,这里暂不赘述。
在部署完基础调度插件和插件接口后,就可以执行步骤S210,响应于用户的插件插入请求,在指定插件接口处插入用户自定义插件。其中用户的插件插入请求可以指定了要插入的插件接口,由此可以根据用户的插件插入请求在相应的插件接口处插入用户自定义插件。
具体地,对于步骤S205中部署的每个插件接口,可以均默认其没有插入用户自定义插件,即每个插件接口默认是空的,由此本发明还可以设有一个检测步骤,用于检测插件接口是否插入了用户自定义插件。
在检测到插入了用户自定义插件后,就可以执行步骤S220,使用基础调度插件以及所插入的用户自定义插件在多个业务节点120之间执行任务调度。其中基础调度插件可以用于实现调度过程中的预定功能,例如可以用于实现通用的调度功能,用户自定义插件可以用来实现用户的个性化的调度需求。响应于在插件接口处插入了用户自定义插件,就可以根据插件接口与基础调度插件之间的关系,使用基础调度插件和用户自定义插件执行任务调度。
由此用户仅需要根据自身的调度需求创建相应的用户自定义插件,并把创建好的用户自定义插件插入相应的插件接口,即可以使用预先部署好的基础调度插件以及用户自定义插件来执行任务调度,从而可以满足用户的个性化调度需求,并且还可以降低用户的处理逻辑和开发成本。
下面详细说明本发明述及的基础调度插件、插件接口以及用户自定义插件可以具有的类别及三者之间的关系。
图3是示出了本发明的基础调度插件、插件接口以及用户自定义插件可以具有的类别及三者之间的关系的示意图。
参见图3,按照调度过程的先后顺序,基础调度插件可以包括调度决策准备插件、调度策略生成插件以及调度策略执行插件。
调度决策准备插件用于从目标业务节点收集调度用数据,调度策略生成插件用于根据所收集到的调度用数据生成调度策略,调度策略执行插件用于根据调度策略向目标业务节点发送调度指令。由此,基于这三个基础调度插件就可以实现通用的调度功能。
正如上文所述,为了可以实现不同场景下的调度策略,本发明在基础调度插件之前和/或之后还部署了多个插件接口,不同的插件接口适于插入具有不同执行逻辑的用户自定义插件。
具体地,在调度决策准备插件之前可以部署调度决策准备前插件接口,该接口适于插入用户自定义的调度决策准备前插件,该插件适于向用于执行要调度的任务的应用实例发送指令和/或收集应用实例的相关信息。
在调度策略生成插件之前可以部署调度策略生成前插件接口,调度策略生成前插件接口适于插入用户自定义的调度策略生成前插件,该插件适于修改调度用数据和/或获取外部信息以扩充调度用数据。
在调度策略执行插件之前可以部署调度策略执行前插件接口,该接口适于插入用户自定义的调度策略执行前插件,该插件适于对调度策略进行调整或生成新的调度策略。
在调度策略执行插件之后可以部署调度策略执行后插件接口,该接口适于插入用户自定义的调度策略执行后插件,该插件适于获取调度策略的执行结果和/或清理或恢复任务调度过程中遗留的数据。
由此结合图3对基础调度插件、插件接口以及用户自定义插件可以具有的类别及三者之间的关系做了详细说明。需要说明的是,上文述及的各用户自定义插件可以实现的具体功能仅是一种示意性说明,根据实际情况,基础调度插件、插件接口可以有不同的部署方式,相应地,插件接口可以适于插入具有不同调度功能的用户自定义插件,这里不再赘述。
图4是示出了根据本发明一实施例的分布式系统调度装置的功能框图。其中,分布式系统调度装置400的功能模块可以由实现本发明原理的硬件、软件或硬件和软件的结合来实现。本领域技术人员可以理解的是,图3所描述的功能模块可以组合起来或者划分成子模块,从而实现上述发明的原理。因此,本文的描述可以支持对本文描述的功能模块的任何可能的组合、或者划分、或者更进一步的限定。
图4所示的分布式系统调度装置400可以用来实现图2所示的调度方法,下面仅就分布式系统调度装置400可以具有的功能模块以及各功能模块可以执行的操作做简要说明,对于其中涉及的细节部分可以参见上文结合图2、图3的描述,这里不再赘述。
参见图4,分布式系统调度装置400包括插件插入装置410和调度装置420。
插件插入装置410用于响应于用户的插件插入请求,在指定插件接口处插入用户自定义插件,其中,一个或多个插件接口分别部署在预先部署好的一个或多个基础调度插件中的至少一个之前或之后,一个或多个基础调度插件分别实现调度过程中的预定功能,用户自定义插件用于实现与调度相关的用户自定义功能。
调度装置420用于使用基础调度插件以及所插入的用户自定义插件执行任务调度。
参见图4,分布式系统调度装置400还可以可选地包括基础调度插件部署装置430和插件接口部署装置450。.
基础调度插件部署装置430用于部署一个或多个基础调度插件,插件接口部署装置450用于在至少一个基础调度插件之前或之后部署插件接口,用于插入用户自定义插件。其中每个插件接口可以均默认没有插入用户自定义插件,并且调度装置420响应于在插件接口处插入了用户自定义插件,根据插件接口与一个或多个基础调度插件之间的关系,使用一个或多个基础调度插件和用户自定义插件执行任务调度。
关于基础调度插件、插件接口以及用户自定义插件的具体类型可以参见上文结合图3的相关描述,这里不再赘述。
上文中已经参考附图详细描述了根据本发明的分布式系统调度方法、装置及分布式系统。如下将给出利用本发明实现监控的一个具体应用。
应用例
101、初始化阶段。
分布式系统的调度过程可以主要分为三个步骤,分别是决策准备、调度决策、决策执行。这三个步骤一般是不需要进行修改的,因此可以由三个不同的基础调度插件执行。在每个基础调度插件之前和之后都可以部署一些插件接口,用户自定义插件可以插入到这些插件接口中。这样用户就可以在不同的阶段,改变调度的策略,然后实现自己的个性化的策略定制。在本实施例中,可以设计四个用户自定义插件可以插入的插件接口。分别是决策准备前、调度决策前,调度执行前,调度执行后四个插件接口。用户可以定制自己的插件,可以插入到这四个插件接口中的任意一个或多个。
102、决策准备前阶段
由决策准备前插件接口配置的插件实现,决策准备前插件插件接口默认为空,如果该接口配置了用户自定义插件,则进入该插件的执行。在这个阶段,插件可以自己给需要决策准备的应用实例发送一下指令,也可以收集一些这些应用实例的信息。
103、决策准备阶段
由决策准备插件实现。首先在每台机器的每一个应用的进程都会汇报自己的心跳到调度节点上,该心跳信息包括了该任务的CPU的占用情况,任务的内存的占用情况,自己的应用信息等。然后对于每一个应用可能会汇报和自己应用相关的一些信息进行辅助决策,比如是否加载了数据,数据的版本等。同时,调度节点会拉取一些和应用相关的外部信号,比如该机器的发布方式,是否已经发布到名字服务等信息。
104、调度决策前阶段
由调度决策前插件接口配置的插件实现,调度决策前插件接口默认为空,如果该接口配置了用户自定义插件,则进入该插件的执行。在该阶段,插件可以自己获取一些外部的信息,也可以通过已有的决策准备的信息,进行修改部分机器上面的信息等。
105、调度决策阶段
由调度决策插件实现。调度决策阶段是整个调度过程的核心阶段,首先在上一个步骤中已经收集好了各个应用的心跳,版本等信息,然后会根据这个应用对应的服务实例的个数、是否正常服务等需求,然后进行调度决策,最后会形成一个调度决策的结果,然后将该结果发送到下一个步骤。
106、决策执行前阶段
由决策执行前插件接口配置的插件实现,决策执行前插件接口默认为空,如果该接口配置了插件,则进入该插件的执行。该步骤是调度决策到决策实际执行的中间阶段,在这个阶段可以动态的调整调度决策的过程,也可以自己重新进行调度一次,只需要将最终的决策信息发送到决策执行阶段就可以了。
107、决策执行阶段
由决策执行插件实现。决策执行是调度系统中的最终执行的阶段,主要是将上一个阶段中进行决策的结果执行到具体的机器上。比如下线某一台机器,在某一台机器上启动某个应用等功能。
108、决策执行后阶段
由决策执行后插件接口配置的插件实现,决策执行后插件接口默认为空,如果该接口配置了插件,则进入该插件的执行。该步骤是在调度决策的最后,用户可以获取决策执行的结果,也可以做一些决策的清理工作等。
综上,本发明的调度方案通过将调度过程插件化,可以简化复杂的调度过程,用户只需要根据要修改调度的那一部分的信息创建相应的用户自定义插件就可以实现对调度策略的个性化定制。下面结合另一具体实例来介绍使用插件化的方式解决特殊调度逻辑的实现过程。
例如,某个应用需要在程序的启动过程中,能够加载自己的数据。这样它有两种做法,一种是向所有可能调度到的机器上分发该数据,另一种做法则是在自己应用启动的过程中,编写代码来加载自己的数据。这两种方案都不是比较适合的解决方案。第一种方案不是很灵活,需要在所有的机器上都调度一份数据,增加了流程的复杂性,也使得系统更加复杂,占用个更多的机器资源。第二种方案,也会造成系统运行加载比较慢,重新调度后,无法做到选择有数据的机器进行加载。
在使用本方案的调度系统中,就可以通过插件来定制自己的需求。具体地,用户需要编写两个插件,一个是决策准备前的插件,用于收集每一台机器上是否已经有了想要的数据,另一个插件是决策执行前插件,用于改变调度的结果,优先调度机器到已经有了数据的机器上。这样,在不改变大的调度逻辑下,很好的支持了自定义调度的实现。
综上,本发明的调度方案通过插件的方式来分解整个调度的过程,将用户需要开发调度策略的成本降到最低,可以简化用户的处理逻辑;在整个调度过程中设计了不同的插件接口,可以插入用户需要的插件,能够灵活的实现用户个性化的调度需求;通过插件的方式能够使得不同的应用只关心自己的调度决策逻辑,不同应用之间的调度逻辑相互独立,虽然在同一个调度节点里面进行运行,但是相互之间不会进行干扰,保证了调度结果的准确性。
此外,根据本发明的方法还可以实现为一种计算机程序,该计算机程序包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。或者,根据本发明的方法还可以实现为一种计算机程序产品,该计算机程序产品包括计算机可读介质,在该计算机可读介质上存储有用于执行本发明的上述方法中限定的上述功能的计算机程序。本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (13)
1.一种分布式系统,包括:
多个业务节点;以及
调度节点,用于对多个业务节点进行任务调度,
其中,所述调度节点上部署有一个或多个基础调度插件,所述一个或多个基础调度插件分别实现调度过程中的预定功能,在至少一个基础调度插件之前或之后部署有插件接口,用于插入用户自定义插件,
所述调度节点响应于用户的插件插入请求,在指定插件接口处插入用户自定义插件,所述用户自定义插件用于实现与调度相关的用户自定义功能,
所述调度节点使用所述一个或多个基础调度插件以及所插入的用户自定义插件,在所述多个业务节点之间执行所述任务调度。
2.一种分布式系统调度装置,用于对多个业务节点进行任务调度,包括:
插件插入装置,用于响应于用户的插件插入请求,在指定插件接口处插入用户自定义插件,其中,一个或多个插件接口分别部署在预先部署好的一个或多个基础调度插件中的至少一个之前或之后,所述一个或多个基础调度插件分别实现调度过程中的预定功能,所述用户自定义插件用于实现与调度相关的用户自定义功能;
调度装置,用于使用所述一个或多个基础调度插件以及所插入的用户自定义插件执行所述任务调度。
3.根据权利要求2所述的分布式系统调度装置,还包括:
基础调度插件部署装置,用于部署所述一个或多个基础调度插件;
插件接口部署装置,用于在至少一个基础调度插件之前或之后部署所述插件接口,用于插入所述用户自定义插件。
4.根据权利要求2所述的分布式系统调度装置,其中,
每个所述插件接口均默认没有插入用户自定义插件,并且
所述调度装置响应于在插件接口处插入了用户自定义插件,根据所述插件接口与所述一个或多个基础调度插件之间的关系,使用所述一个或多个基础调度插件和所述用户自定义插件执行所述任务调度。
5.根据权利要求2-4中任何一项所述的分布式系统调度装置,其中,
所述基础调度插件包括:
调度策略执行插件,用于根据调度策略向所述目标业务节点发送调度指令,
所述插件接口包括:
调度策略执行前插件接口,部署在所述调度策略执行插件之前,适于插入用户自定义的调度策略执行前插件,所述调度策略执行前插件适于对所述调度策略进行调整或生成新的调度策略;和/或
调度策略执行后插件接口,部署在所述调度策略执行插件之后,适于插入用户自定义的调度策略执行后插件,所述调度策略执行后插件适于获取所述调度策略的执行结果和/或清理或恢复任务调度过程中遗留的数据。
6.根据权利要求2-4中任何一项所述的分布式系统调度装置,其中,
所述基础调度插件包括:
调度策略生成插件,用于根据所收集到的调度用数据生成调度策略,
所述插件接口包括:
调度策略生成前插件接口,部署在所述调度策略生成插件之前,适于插入用户自定义的调度策略生成前插件,所述调度策略生成前插件适于修改所述调度用数据和/或获取外部信息以扩充所述调度用数据。
7.根据权利要求2-4中任何一项所述的分布式系统调度装置,其中,
所述基础调度插件包括:
调度决策准备插件,用于从目标业务节点收集调度用数据,
所述插件接口包括:
调度决策准备前插件接口,部署在所述调度决策准备插件之前,适于插入用户自定义的调度决策准备前插件,所述调度决策准备前插件适于向用于执行要调度的任务的应用实例发送指令和/或收集所述应用实例的相关信息。
8.一种分布式系统调度方法,用于对多个业务节点进行任务调度,包括:
响应于用户的插件插入请求,在指定插件接口处插入用户自定义插件,其中,一个或多个插件接口分别部署在预先部署好的一个或多个基础调度插件中的至少一个之前或之后,所述一个或多个基础调度插件分别实现调度过程中的预定功能,所述用户自定义插件用于实现与调度相关的用户自定义功能;
使用所述一个或多个基础调度插件以及所插入的用户自定义插件执行所述任务调度。
9.根据权利要求8所述的分布式系统调度方法,还包括:
部署所述一个或多个基础调度插件;
在至少一个基础调度插件之前或之后部署所述插件接口,用于插入所述用户自定义插件。
10.根据权利要求8所述的分布式系统调度方法,其中,
每个所述插件接口均默认没有插入用户自定义插件,并且
响应于在插件接口处插入了用户自定义插件,根据所述插件接口与所述一个或多个基础调度插件之间的关系,使用所述一个或多个基础调度插件和所述用户自定义插件执行所述任务调度。
11.根据权利要求8-10中任何一项所述的分布式系统调度方法,其中,
所述基础调度插件包括:
调度策略执行插件,用于根据调度策略向所述目标业务节点发送调度指令,
所述插件接口包括:
调度策略执行前插件接口,部署在所述调度策略执行插件之前,适于插入用户自定义的调度策略执行前插件,所述调度策略执行前插件适于对所述调度策略进行调整或生成新的调度策略;和/或
调度策略执行后插件接口,部署在所述调度策略执行插件之后,适于插入用户自定义的调度策略执行后插件,所述调度策略执行后插件适于获取所述调度策略的执行结果和/或清理或恢复任务调度过程中遗留的数据。
12.根据权利要求8-10中任何一项所述的分布式系统调度方法,其中,
所述基础调度插件包括:
调度策略生成插件,用于根据所收集到的调度用数据生成调度策略,
所述插件接口包括:
调度策略生成前插件接口,部署在所述调度策略生成插件之前,适于插入用户自定义的调度策略生成前插件,所述调度策略生成前插件适于修改所述调度用数据和/或获取外部信息以扩充所述调度用数据。
13.根据权利要求8-10中任何一项所述的分布式系统调度方法,其中,
所述基础调度插件包括:
调度决策准备插件,用于从目标业务节点收集调度用数据,
所述插件接口包括:
调度决策准备前插件接口,部署在所述调度决策准备插件之前,适于插入用户自定义的调度决策准备前插件,所述调度决策准备前插件适于向用于执行要调度的任务的应用实例发送指令和/或收集所述应用实例的相关信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710056512.3A CN106874047B (zh) | 2017-01-25 | 2017-01-25 | 分布式系统调度方法、装置及分布式系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710056512.3A CN106874047B (zh) | 2017-01-25 | 2017-01-25 | 分布式系统调度方法、装置及分布式系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106874047A true CN106874047A (zh) | 2017-06-20 |
CN106874047B CN106874047B (zh) | 2020-08-04 |
Family
ID=59158817
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710056512.3A Active CN106874047B (zh) | 2017-01-25 | 2017-01-25 | 分布式系统调度方法、装置及分布式系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106874047B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108900379A (zh) * | 2018-07-09 | 2018-11-27 | 广东神马搜索科技有限公司 | 分布式网络业务调度方法、装置、计算设备和存储介质 |
CN109408212A (zh) * | 2018-09-28 | 2019-03-01 | 平安科技(深圳)有限公司 | 任务调度组件构造方法、装置及存储介质、服务器 |
CN110764836A (zh) * | 2019-09-18 | 2020-02-07 | 华为技术有限公司 | 插件实现的方法和插件实现的系统 |
CN111488181A (zh) * | 2020-04-07 | 2020-08-04 | 广州虎牙科技有限公司 | 任务调度方法、装置、存储介质及服务器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1678097A (zh) * | 2004-03-30 | 2005-10-05 | 北京邮电大学 | 基于业务能力分级的分布式移动终端的调度控制方法 |
CN102609295A (zh) * | 2011-10-18 | 2012-07-25 | 华中科技大学 | 虚拟机作业动态调度系统 |
EP2650786A2 (en) * | 2012-04-09 | 2013-10-16 | Samsung Electronics Co., Ltd | Distributed processing system, scheduler node and scheduling method of distributed processing system, and program generation apparatus thereof |
-
2017
- 2017-01-25 CN CN201710056512.3A patent/CN106874047B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1678097A (zh) * | 2004-03-30 | 2005-10-05 | 北京邮电大学 | 基于业务能力分级的分布式移动终端的调度控制方法 |
CN102609295A (zh) * | 2011-10-18 | 2012-07-25 | 华中科技大学 | 虚拟机作业动态调度系统 |
EP2650786A2 (en) * | 2012-04-09 | 2013-10-16 | Samsung Electronics Co., Ltd | Distributed processing system, scheduler node and scheduling method of distributed processing system, and program generation apparatus thereof |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108900379A (zh) * | 2018-07-09 | 2018-11-27 | 广东神马搜索科技有限公司 | 分布式网络业务调度方法、装置、计算设备和存储介质 |
CN108900379B (zh) * | 2018-07-09 | 2020-12-29 | 阿里巴巴(中国)有限公司 | 分布式网络业务调度方法、装置、计算设备和存储介质 |
CN109408212A (zh) * | 2018-09-28 | 2019-03-01 | 平安科技(深圳)有限公司 | 任务调度组件构造方法、装置及存储介质、服务器 |
CN109408212B (zh) * | 2018-09-28 | 2023-09-19 | 平安科技(深圳)有限公司 | 任务调度组件构造方法、装置及存储介质、服务器 |
CN110764836A (zh) * | 2019-09-18 | 2020-02-07 | 华为技术有限公司 | 插件实现的方法和插件实现的系统 |
US11880695B2 (en) | 2019-09-18 | 2024-01-23 | Huawei Technologies Co., Ltd. | Plug-in implementation method and plug-in implementation system |
CN110764836B (zh) * | 2019-09-18 | 2024-02-09 | 华为技术有限公司 | 插件实现的方法和插件实现的系统 |
CN111488181A (zh) * | 2020-04-07 | 2020-08-04 | 广州虎牙科技有限公司 | 任务调度方法、装置、存储介质及服务器 |
CN111488181B (zh) * | 2020-04-07 | 2024-03-01 | 广州虎牙科技有限公司 | 任务调度方法、装置、存储介质及服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN106874047B (zh) | 2020-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106874047A (zh) | 分布式系统调度方法、装置及分布式系统 | |
CN108432208A (zh) | 一种业务编排方法、装置及服务器 | |
CN112241321A (zh) | 基于Kubernetes的算力调度方法和装置 | |
CN108255707B (zh) | 测试用例的开发角色创建方法、装置、设备及存储介质 | |
CN111309440B (zh) | 一种多类型gpu的管理调度的方法和设备 | |
CN111831191A (zh) | 工作流配置方法、装置、计算机设备和存储介质 | |
EP4375892A1 (en) | Distributed training method for ai model and related device | |
US20190102149A1 (en) | Method for providing an integrated process for control unit development and a simulation device for control unit development | |
CN112486642A (zh) | 资源调度方法、装置、电子设备及计算机可读存储介质 | |
CN109885580A (zh) | 一种热点账户批量更新方法、装置、服务器和存储介质 | |
CN112148481B (zh) | 一种执行仿真测试任务的方法、系统、设备及介质 | |
CN110958138B (zh) | 一种容器扩容方法及装置 | |
CN106294037A (zh) | 拷机测试方法及装置 | |
CN112448833B (zh) | 一种多管理域的通信方法和装置 | |
CN115421891A (zh) | 一种任务分发方法、装置、设备及介质 | |
CN106899659A (zh) | 分布式系统及其管理方法和管理装置 | |
CN110308914B (zh) | 升级处理方法、装置、设备、系统及计算机可读存储介质 | |
CN107071014B (zh) | 一种资源调整方法及装置 | |
CN107045452A (zh) | 虚拟机调度方法和装置 | |
CN112486481B (zh) | 多模块分层架构实现方法、装置、电子设备及介质 | |
CN112508535B (zh) | 一种基于jbpm的用于审批的工作流的改进方法及装置 | |
CN111526168B (zh) | 一种网络功能虚拟化nfv架构的调度管理方法及装置 | |
Engelsberger et al. | Self-organizing Service Structures for Cyber-physical Control Models with Applications in Dynamic Factory Automation | |
CN114201413A (zh) | 自动化测试方法、系统及电子设备 | |
CN110795075B (zh) | 用于软件编程的数据处理方法及装置 |
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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200810 Address after: 310052 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province Patentee after: Alibaba (China) Co.,Ltd. Address before: 510627 Guangdong city of Guangzhou province Whampoa Tianhe District Road No. 163 Xiping Yun Lu Yun Ping square B radio tower 13 layer self unit 01 Patentee before: Guangdong Shenma Search Technology Co.,Ltd. |