分布式排程系统以及分布式排程方法与流程

文档序号:33127686发布日期:2023-02-01 06:02阅读:27来源:国知局
分布式排程系统以及分布式排程方法与流程

1.本发明涉及一种系统,特别是一种分布式排程系统以及分布式排程方法。


背景技术:

2.软件即服务(software as a service,saas)是目前企业应用系统的主流架构。对此,一般用户无需自行购入软件,并且取而代之的是依需求租用网页(web)软件功能来用于进行相关企业运营与管理。在此模式下,企业用户无需自行建置与管理软件与其运行环境,而可有效地降低购买并维护软件与其必要运行设备的需要,以使企业可更弹性的使用所需的软件功能。
3.然而,在saas的环境下,相较于单一部署的地端系统,若企业应用系统发生不稳定的状况,则受影响的范围将会更广,并且可能造成应用功能的组户以及营运商的重大损失。因此,saas架构下的企业应用系统在稳定性与可用性上会有更高的要求。
4.目前,排程工作在企业应用系统中是一种广泛被使用的技术。并且,为了确保整体系统架构中不会因为单点故障而造成整体运作不正常,一个高可用且可弹性扩容的排程方案也成为saas环境下的必要条件。虽然,为了满足这样的场景,目前已存在多种排程方案。例如,广泛的使用分布式架构搭配流程引擎,以确保在排程工作运行段的高可用性及扩容能力。然而,这些作法虽可在运行阶段可达到高可用(high availability)的效果,但仍无法解决数据库成为单一瓶颈点的问题。特别是,当排程工作数量大且负载量上升时,数据库将无法有效承载,并且可能进一步导致整体个排程工作的效能下降甚至无法运作。


技术实现要素:

5.本发明是针对一种分布式排程系统以及分布式排程方法,可实现高可用(high availability)的分布式排程功能。
6.根据本发明的实施例,本发明的分布式排程系统包括主排程平台以及从排程平台。从排程平台,连接主排程平台。当后端运行平台提供排程数据维护请求至主排程平台时,主排程平台根据排程数据维护请求提供排程数据维护信息至从排程平台,以使从排程平台根据排程数据维护信息进行排程数据的维护工作。当排程数据的排程工作执行条件成立时,从排程平台发起工作,并且调用对应的微服务,以执行排程数据的业务逻辑。
7.根据本发明的实施例,本发明的分布式排程方法包括以下步骤:当后端运行平台提供排程数据维护请求至主排程平台时,通过主排程平台根据排程数据维护请求提供排程数据维护信息至从排程平台;通过从排程平台根据排程数据维护信息进行排程数据的维护工作;以及当排程数据的排程工作执行条件成立时,通过从排程平台发起工作,并且调用对应的微服务,以执行排程数据的业务逻辑。
8.基于上述,本发明的分布式排程系统以及分布式排程方法,可通过设置主排程平台以及至少一个从排程平台来实现高可用的分布式排程架构,并且本发明的分布式排程系统可在高可用的情况下维持高运行效能。
9.为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图式作详细说明如下。
附图说明
10.图1是本发明的实施例的分布式排程系统的示意图;
11.图2是本发明的实施例的分布式排程方法的流程图;
12.图3是本发明的实施例的分布式排程系统的实施示意图;
13.图4是本发明的实施例的执行排程数据维护的流程图;
14.图5是本发明的实施例的排程工作运行的流程图;
15.图6是本发明的实施例的执行排程动态上线的流程图。
16.附图标记说明
17.100、300:分布式排程系统;
18.110、310:主排程平台;
19.120_1~120_n、320_1、320_2:从排程平台;
20.130:微服务配置中心模块;
21.140:缓存服务模块;
22.200、400:后端运行平台;
23.210_1~210_m、410_1、410_2:微服务;
24.312、322_1、322_2:数据库;
25.311、321_1、321_2:网关;
26.s210~s230、s401~s411、s511~s513、s521~s523、s611~s615、s621~s625:步骤。
具体实施方式
27.现将详细地参考本发明的示范性实施例,示范性实施例的实例说明于附图中。只要有可能,相同元件符号在图式和描述中用来表示相同或相似部分。
28.图1是本发明的实施例的分布式排程系统的示意图。参考图1,分布式排程系统100包括主排程平台110、从排程平台120_1~120_n、微服务配置中心模块130以及缓存服务模块140,其中n为正整数。在本实施例中,微服务配置中心模块130以及缓存服务模块140可分别连接主排程平台110以及从排程平台120_1~120_n,并且主排程平台110以及从排程平台120_1~120_n可彼此连线。在本实施例中,后端运行平台200可连线主排程平台110。用户可通过后端运行平台200提供排程数据维护请求至主排程平台110,以进行排程工作维护。并且,当从排程平台120_1~120_n的其中之一判断排程数据的排程工作执行条件成立时,从排程平台120_1~120_n的所述其中之一可调用微服务(micro service)210_1~210_m的对应至少一个,以执行排程数据的业务逻辑。
29.在本实施例中,主排程平台110、从排程平台120_1~120_n、微服务配置中心模块130以及缓存服务模块140可分别独立设置在不同电子设备、服务器或具备相关运算硬件的装置中,或者一部分设置在同一电子设备、同一服务器或具备相关运算硬件的同一装置中。主排程平台110、从排程平台120_1~120_n、微服务配置中心模块130以及缓存服务模块140
可分别存储在相同或不同的存储装置中,并且由相同或不同的处理器执行之。所述处理器可例如包括中央处理单元(central processing unit,cpu),或是其他可编程之一般用途或特殊用途的微处理器(microprocessor)、数字信号处理器(digital signal processor,dsp)、特殊应用集成电路(application specific integrated circuits,asic)、可编程逻辑器件(programmable logic device,pld)、其他类似处理电路或这些装置的组合。所述存储装置可包括存储器(memory)及/或数据库(database)。所述存储装置可例如是非易失性存储器(non-volatile memory,nvm)。所述存储装置可存储有用于实现本发明各实施例的相关程序、模块、系统或算法,以供所述处理器存取并执行而实现本发明各实施例所描述的相关功能及操作。
30.在本实施例中,主排程平台110、从排程平台120_1~120_n、微服务配置中心模块130以及缓存服务模块140可分别例如是以json(javascript object notation)、可延伸标记式语言(extensible markup language,xml)或yaml等诸如此类的程序语言来实现的,但本发明也不限于此。
31.在本实施例中,分布式排程系统100可建置在云端,并可例如用于实现软件即服务(software as a service,saas)的功能与架构。在一实施例中,主排程平台110可通过互联网(internet)来连线至从排程平台120_1~120_n,并且从排程平台120_1~120_n也可通过互联网(例如基于超文本传输协定(hyper text transfer protocol,http))来连线并调用微服务(micro service)210_1~210_m。后端运行平台也可通过互联网来连线主排程平台110,以进行排程数据的维护工作,其中维护工作包括对排程数据的新增、删除或修改等操作。
32.图2是本发明的实施例的分布式排程方法的流程图。参考图1以及图2,分布式排程100可执行如以下步骤s210~s230。在步骤s210,当后端运行平台200提供排程数据维护请求至主排程平台110时,主排程平台110根据排程数据维护请求提供排程数据维护信息至从排程平台120_1~120_n。在步骤s220,从排程平台120_1~120_n根据排程数据维护信息进行排程数据的维护工作。在步骤s230,当排程数据的排程工作执行条件成立时,从排程平台120_1~120_n发起工作,并且调用对应的微服务,以执行排程数据的业务逻辑。
33.在本实施例中,主排程平台110可例如由应用程序服务器执行,并还连线数据库(data base)服务器。主排程平台110可用于进行新增、删除或修改等排程工作的维护服务。主排程平台110可将排程数据维护信息以及排程工作信息发送至从排程平台120_1~120_n的每一个,以使排程数据可同步存储至从排程平台120_1~120_n的每一个。在本实施例中,主排程平台110不负责实际运行排程工作。
34.在本实施例中,从排程平台120_1~120_n可分别例如由一个或多个应用程序服务器执行,并还分别连线一个或多个数据库服务器。在一实施例中,从排程平台120_1~120_n的至少其中之一可共用同一个数据库服务器。在本实施例中,从排程平台120_1~120_n的每一个可根据排程数据中的排程工作设定发送请求至对应的微服务,以例如定时或周期性地运行对应的微服务。从排程平台120_1~120_n的每一个可分别存储完整的(全部的)排程工作设定信息,但仅被微服务配置中心模块130指定配置(指定执行)的从排程平台会执行对应的排程工作。
35.在本实施例中,微服务配置中心模块130用于配置从排程平台120_1~120_n分别
对应的排程工作分配。在本实施例中,缓存服务模块140可用于心跳监测主排程平台110以及从排程平台120_1~120_n,并且可动态上线相关记录。
36.图3是本发明的实施例的分布式排程系统的实施示意图。图4是本发明的实施例的执行排程数据维护的流程图。参考图3以及图4,本实施例以分布式排程系统300包括主排程平台310、第一从排程平台320_1以及第二从排程平台320_2为范例说明。分布式排程系统300可执行以下步骤s401~s411,以实现排程数据维护。主排程平台310、第一从排程平台320_1以及第二从排程平台320_2分别对应于网关311、321_1、321_2。在本实施例中,主排程平台310可连线至第一数据库312。后端运行平台400可通过网关(gateway)311连线至主排程平台310。在步骤s401,后端运行平台400可通过网关311提供排程数据维护请求301至主排程平台310。在步骤s402,主排程平台310可接收排程数据维护请求301。在步骤s403,主排程平台310可分别通过网关321_1、321_2提供排程数据维护信息302至第一从排程平台320_1以及第二从排程平台320_2。
37.在步骤s404以及步骤s408,第一从排程平台320_1以及第二从排程平台320_2可分别接收排程数据维护信息302。在步骤s405及步骤s409,第一从排程平台320_1以及第二从排程平台320_2可分别根据排程数据维护信息302判断是否新增排程工作。若是(排程数据维护信息302为新增排程数据信息),则第一从排程平台320_1以及第二从排程平台320_2可分别通知微服务配置中心模块(如图1的微服务配置中心模块130)新增排程工作。在步骤s406及步骤s410,微服务配置中心模块可分别回应对应的排程工作信息至第一从排程平台320_1以及第二从排程平台320_2,以新增排程工作。第一从排程平台320_1可将新增的排程数据303存储至第二数据库322_1,并且第二从排程平台320_2可将新增的排程数据303存储至第三数据库322_2。同样的,主排程平台310可同样将新增的排程数据303存储至第一数据库312。若否(排程数据维护信息302为修改或删除排程数据)。在步骤s407及步骤s411,第一从排程平台320_1以及第二从排程平台320_2可分别根据排程数据维护信息302维护存储在第二数据库322_1以及第三数据库322_2中的排程数据。同样的,主排程平台310可维护存储在第一数据库312中的相同的排程数据。
38.在本实施例中,当主排程平台310从后端运行平台400取得排程数据时,主排程平台310可经由网络连线至第一从排程平台320_1的网关321_1,以提供排程数据至第一从排程平台320_1。并且,主排程平台310还可经由网络连线至第二从排程平台320_2的网关321_2,以同样提供排程数据至第二从排程平台320_2。主排程平台310、第一从排程平台320_1以及第二从排程平台320_2可分别将排程数据存储至不同的数据库。第一从排程平台320_1以及第二从排程平台320_2可使用相同的数据库,或者第一从排程平台320_1以及第二从排程平台320_2可使用不同的数据库。换言之,本实施例的分布式排程系统300可将排程数据存储(备份)至不同的从排程平台所个别对应的独立数据库中。
39.图5是本发明的实施例的排程工作运行的流程图。参考图3至图5,分布式排程系统300可执行以下步骤s511~s513、s521~s523。先说明的是,在本发明各实施例所述的排程数据的数据内容可例如包括排程编号、排程名称、排程类型、排程启动状态、排程生效时间、排程失效时间、排程参数、下次执行时间、租户编号、模组名称以及作业标号等,但本发明并不限于此。在本实施例中,所述排程编号可例如是以杂凑码(hash code)的编码形式来产生,以确保一个排程仅会由一个从排程平台执行。在本实施例中,所述排程类型可例如是用
于定义此排程为定时执行或周期执行。所述排程参数可例如记载须对应执行的微服务的相关连结与执行信息。
40.在本实施例中,第一从排程平台320_1以及第二从排程平台320_2可分别根据被各自对应配置的排程数据的排程类型以及下次执行时间执行对应的排程数据的业务逻辑,以分别通过网关321_1以及网关321_2调用对应的第一微服务410_1以及第二微服务410_2。具体而言,在步骤s511,第一从排程平台320_1判断第一排程数据的排程工作执行条件是否成立。在步骤s512,当第一排程数据的排程工作执行条件成立时,第一从排程平台320_1可根据第一排程数据的数据内容发起工作,以通过网关321_1调用第一微服务410_1。第一从排程平台320_1可将相关执行信息以及业务数据提供至第一微服务410_1。在步骤s513,第一微服务410_1可执行相对应的业务逻辑,以产生执行结果,并可例如将执行结果发送给用户或租户的终端设备。
41.同样的,在步骤s521,第二从排程平台320_2判断第二排程数据的排程工作执行条件是否成立。在步骤s522,当第二排程数据的排程工作执行条件成立时,第二从排程平台320_2可根据第二排程数据的数据内容发起工作,以通过网关321_2调用第二微服务410_2。第二从排程平台320_2可将相关执行信息以及业务数据提供至第二微服务410_2。在步骤s523,第二微服务410_2可执行相对应的业务逻辑,以产生执行结果,并可例如将执行结果发送给用户或租户的终端设备。因此,本实施例的分布式排程系统300可通过分布式排程架构,来实现高运行效能。
42.此外,应注意的是,上述的第一排程数据以及第二排程数据同步存储在第一数据库312、第二数据库322_1以及第三数据库322_2当中。第一排程数据可预先由微服务配置中心模块来配置由第一从排程平台320_1运行,并且第二排程数据可预先由微服务配置中心模块来配置由第二从排程平台320_2运行。
43.图6是本发明的实施例的执行排程动态上线的流程图。参考图3至图6,分布式排程系统300可执行以下步骤s611~s616、s621~s626,以实现排程动态上线。在步骤s611,启动第一从排程平台320_1。在步骤s612,第一从排程平台320_1可调用缓存服务模块(例如图1的缓存服务模块140)创建排程平台上线信息。在步骤s613,缓存服务模块记录所述排程平台上线信息。在步骤s614,第一从排程平台320_1可根据配置时间间隔(预设更新周期)更新记录在缓存服务模块中的缓存信息,并且监听过期信息。在步骤s615,缓存服务模块可更新排程平台上线信息,并且回复过期信息。换言之,若第一从排程平台320_1发现其他从排程平台发生离线或过期未执行预定排程工作时,第一从排程平台320_1可通知缓存服务模块,并且微服务配置中心模块可重新配置过期未执行的预定排程工作给第一从排程平台320_1。对此,第一从排程平台320_1的第二数据库322_1有预先同步存储全部的排程数据。因此,在步骤s616,第一从排程平台320_1可接续执行过期的其他从排程平台所执行的工作。
44.同样的,在步骤s621,启动第二从排程平台320_2。在步骤s622,第二从排程平台320_2可调用缓存服务模块创建排程平台上线信息。在步骤s623,缓存服务模块记录所述排程平台上线信息。在步骤s624,第二从排程平台320_2可根据配置时间间隔(预设更新周期)更新记录在缓存服务模块中的缓存信息,并且监听过期信息。在步骤s625,缓存服务模块可更新排程平台上线信息,并且回复过期信息。换言之,若第二从排程平台320_2发现其他从排程平台发生离线或过期未执行预定排程工作时,第二从排程平台320_2可通知缓存服务
模块,并且主排程平台310可重新配置过期未执行的预定排程工作给第二从排程平台320_2。对此,第二从排程平台320_2的第三数据库322_2有预先同步存储全部的排程数据。因此,在步骤s626,第二从排程平台320_2可接续执行过期的其他从排程平台所执行的工作。
45.换言之,当第一从排程平台320_1判断第二从排程平台320_2(或其他从排程平台)发生离线或过期未执行预定的第二排程数据的排程工作时,缓存服务模块可更新排程平台上线信息,并且微服务配置中心模块可重新配置未执行预定的第二排程数据的排程工作给第一从排程平台320_1,以使第一从排程平台320_1可执行第二排程数据的排程工作。相同的,当第二从排程平台320_2判断第一从排程平台320_1(或其他从排程平台)发生离线或过期未执行预定的第一排程数据的排程工作时,缓存服务模块可更新排程平台上线信息,并且主排程平台310可重新配置未执行预定的第一排程数据的排程工作给第二从排程平台320_2,以使第二从排程平台320_2可执行第一排程数据的排程工作。
46.并且,当第一从排程平台320_1(或第二从排程平台320_2)发现主排程平台310为离线状态时,第一从排程平台320_1可对其他从排程平台发起广播,并且当第一从排程平台320_1接收到超过预设数量的其他从排程平台的响应时(例如50%的从排程平台同意),第一从排程平台320_1可变更为新的主排程平台。换言之,本实施例的主排程平台310即便发生故障,也不会影响排程工作运行,并且可由某一从排程平台取代其功能。因此,本实施例的分布式排程系统300可实现高可用的分布式排程架构。当其中一个从排程平台或主排程平台310的设备发生故障时,其他从排程平台可自动接收执行其排程工作或功能。
47.综上所述,本发明的分布式排程系统以及分布式排程方法可透过对于主排程平台以及各从排程平台皆设置有独立数据源的方式来实现高可用的效果,且无须额外设置其他数据库丛集(db cluster)来有效避免资源与效能耗损。本发明的主排程平台仅进行整体排程配置的一致性处理,而不参与排程工作的运行。如此一来,即便主排程平台发生故障,亦不影响现行排程工作运行。当主排程平台发生故障或离线时,可由其他从排程平台取代。并且,本发明的从排程平台实际进行排程工作的分配与运行,并且每个从排程平台对应于独立数据库。当其中一个从排程平台的设备发生故障时,其他从排程平台可自动接收执行其排程工作或功能,而可有效避免因单点故障而造成整体排程系统崩溃。
48.最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1