集群任务协调方法、系统和装置与流程

文档序号:12905955阅读:157来源:国知局
集群任务协调方法、系统和装置与流程

本申请涉及计算机技术领域,尤其涉及集群任务协调方法、系统和装置。



背景技术:

在互联网和电子商务领域,许多应用系统中的任务是相互联系的,例如某些任务需要拆分成多个子任务到多个节点进行分别处理,或者某些定时任务具有排他性,这需要将上述各任务进行协调处理。

在现有技术中,应用系统通常采用quatz集群或消息队列进行任务协调。其中,quatz集群是通过预先在任务中嵌入相应的控制代码,而后使用如数据库等公共资源进行任务的协调,quatz集群通常只能在任务处理节点中选取一个节点来处理任务,即上述quatz集群通常仅支持独占任务的协调处理;消息队列通常是利用自身的信息分发特性实现任务简单的分发协调,并且消息队列通常也是将任务分发到某一个节点进行任务处理,即消息队列也仅支持独占任务的协调处理。但是,通常应用系统中不仅包括独占任务,还包括需要多个节点同时处理的并行任务,由此可见,这里还需要一种可以协调并行任务的方法。



技术实现要素:

本申请的目的在于提出一种改进的集群任务协调方法、系统和装置,来解决以上背景技术部分提到的技术问题。

第一方面,本申请提供了一种集群任务协调方法,所述方法包括:包含多个节点的集群启动时,zookeeper服务器从所述集群的各所述节点中确定一个主节点和多个从节点;各所述节点向所述zookeeper服务器注册该节点待执行任务的任务信息,且所述主节点从所述 zookeeper服务器获取各所述任务的任务信息,其中,所述任务信息包括该节点待执行任务的触发条件;当所述主节点根据所述任务信息确定第一任务被触发时,所述主节点从各所述从节点中确定用于执行所述第一任务的至少一个第一从节点,其中,所述第一任务为在所述zookeeper服务器注册的任意一个任务;所述主节点向所述第一从节点分配所述第一任务。

在一些实施例中,所述任务信息包括任务类型信息,其中,所述任务类型包括独占任务和并行任务;所述主节点从各所述从节点中确定用于执行所述第一任务的至少一个第一从节点,包括:若所述第一任务为独占任务,则所述主节点从各所述从节点中确定用于执行所述第一任务的一个第一从节点;若所述第一任务为并行任务,则所述第一任务包含多个子任务,所述主节点从各所述从节点中确定用于执行各所述子任务的多个第一从节点。

在一些实施例中,所述方法还包括:当所述主节点根据所述任务信息确定第一任务被触发时,所述主节点生成所述第一任务的会话,其中,所述会话用于监控所述第一任务的处理进程。

在一些实施例中,所述方法还包括:所述任务信息还包括该节点待执行任务耗时最大阈值;所述方法还包括:基于所述第一任务的会话,所述主节点获取所述第一任务的耗时长度;当所述第一任务的耗时长度大于该第一任务耗时最大阈值时,所述会话标记所述第一任务超时。

在一些实施例中,所述方法还包括:当所述第一任务超时或失败时,所述主节点确定用于执行该第一任务的至少一个第二从节点;以及所述主节点向所述第二从节点分配所述第一任务。

第二方面,本申请提供了一种集群任务协调系统,所述系统包括:zookeeper服务器,用于从所述集群的各节点中确定一个主节点和多个从节点,存储各所述节点待执行任务的任务信息,其中,所述任务信息包括该节点待执行任务的触发条件;所述主节点,用于从所述zookeeper服务器获取各所述任务的任务信息,以及当确定任意一任务被触发时,将该任务分配到对应的从节点;所述从节点,用于执行所 述主节点分配的任务。

在一些实施例中,所述主节点还用于生成所述任务的会话,根据所述会话确定处理超时或失败的任务,并为所述超时或失败的任务重新分配对应的从节点。

第三方面,本申请提供了一种集群定时任务协调系统,所述装置包括:主从节点确定模块,配置用于包含多个节点的集群启动时,zookeeper服务器从所述集群的各所述节点中确定一个主节点和多个从节点;任务信息注册模块,配置用于各所述节点向所述zookeeper服务器注册该节点待执行任务的任务信息,且所述主节点从所述zookeeper服务器获取各所述任务的任务信息,其中,所述任务信息包括该节点待执行任务的触发条件;第一从节点确定模块,配置用于当所述主节点根据所述任务信息确定第一任务被触发时,所述主节点从各所述从节点中确定用于执行所述第一任务的至少一个第一从节点,其中,所述第一任务为在所述zookeeper服务器注册的任意一个任务;第一任务分配模块,配置用于所述主节点向所述第一从节点分配所述第一任务。

在一些实施例中,所述任务信息包括任务类型信息,其中,所述任务类型包括独占任务和并行任务;所述第一从节点确定模块配置具体用于:若所述第一任务为独占任务,则所述主节点从各所述从节点中确定用于执行所述第一任务的一个第一从节点;若所述第一任务为并行任务,则所述第一任务包含多个子任务,所述主节点从各所述从节点中确定用于执行各所述子任务的多个第一从节点。

在一些实施例中,所述装置还包括:会话生成模块,配置用于当所述主节点根据所述任务信息确定第一任务被触发时,所述主节点生成所述第一任务的会话,其中,所述会话用于监控所述第一任务的处理进程。

在一些实施例中,所述任务信息还包括该节点待执行任务耗时最大阈值;所述装置还包括:超时标记模块,配置具体用于基于所述第一任务的会话,所述主节点获取所述第一任务的耗时长度;当所述第一任务的耗时长度大于该第一任务耗时最大阈值时,所述会话标记所 述第一任务超时。

在一些实施例中,所述装置还包括第二从节点确定模块:配置用于当所述第一任务超时或失败时,所述主节点确定用于执行该第一任务的至少一个第二从节点;以及所述主节点向所述第二从节点分配所述第一任务。

本申请提供的集群任务协调方法、系统和装置,zookeeper服务器在集群的各节点中确定主节点和从节点,之后各节点向zookeeper服务器注册各节点待执行任务的任务信息,而后当主节点根据所述任务信息确定第一任务被触发时,主节点可以确定用于执行该第一任务的至少一个第一从节点,最后将第一任务分配给所述第一从节点,不依赖数据库,可靠性增强,还可以通过选择一个或多个节点协调处理不同类型任务。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1是本申请的集群任务协调系统的一个实施例的架构图;

图2是根据本申请的集群任务协调方法的一个实施例的流程图;

图3是根据本申请的集群任务协调方法的又一个实施例的流程图;

图4是根据本申请的集群任务协调装置的一个实施例的结构示意图;

图5是适于用来实现本申请实施例的终端设备或服务器的计算机系统的结构示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

图1示出了根据本申请的集群任务协调系统的一个实施例的示例性架构图100。该集群任务协调系统可以应用本申请的集群任务协调方法和装置。

如图1所示,上述集群任务协调系统100至少可以包括集群101、zookeeper服务器102。这里,上述集群101中包括多个节点,该集群101中的各节点与zookeeper服务器102之间可以通过有线连接或无线连接的方式进行通信。

在本实施例中,上述zookeeper服务器102可以用于在上述集群101启动时,从该集群101的全部节点中确定出一个节点作为主节点103,其余节点作为从节点104,此时上述集群101中的节点可以被分为主节点103和从节点104,如图1所示。同时,集群101中各节点向zookeeper服务器102注册信息,zookeeper服务器102存储上述各节点待执行任务的任务信息,这里的任务信息包括该节点的待执行任务的触发条件、任务名称等。

在本实施例中,上述主节点103可以用于从上述zookeeper服务器102获取其上注册的各任务的任务信息。上述主节点103还可以用于确定上述各任务是否被触发,以及将被触发的任务分配到对应的至少一个从节点,以使该从节点执行上述被触发的任务。

在本实施例的一些可选的实现方式中,上述主节点104还可以用于生成被触发任务的会话,而后根据该会话确定该任务是否处理超时或失败,若确定该任务超时或失败,上述主节点104还可以选择合适的策略对该任务进行下一步的处理,例如,结束该任务或是给该任务重新分配对应的从节点。

在本实施例中,上述从节点104可以用于执行主节点103分配的任务。

需要说明的是,上述任务信息可以包括任务类型信息,其中,任务类型包括独占任务和并行任务。当主节点103分配的任务为独占任 务时,一个从节点104可以完成该任务;当主节点103分配的任务为并行任务时,需要多个从节点104相互配合完成该任务。

应该理解,图1中的zookeeper服务器、集群、主节点和从节点的数目仅仅是示意性的。根据实现需要,可以具有任意数目的zookeeper服务器、集群、主节点和从节点,需要说明的是,一个集群只对应一个主节点。

继续参考图2,示出了根据本申请的集群任务协调方法的一个实施例的流程200。所述的集群任务协调方法,包括以下步骤:

步骤201,包含多个节点的集群启动时,zookeeper服务器从集群的各节点中确定一个主节点和多个从节点。

在本实施例中,在如图1所示的集群任务协调系统中的集群启动时,zookeeper服务器可以通过有线连接方式或者无线连接方式从上述集群所有的节点中确定一个主节点,集群中的除了主节点外的其它节点均为从节点。需要指出的是,上述无线连接方式可以包括但不限于3g/4g连接、wifi连接、蓝牙连接、wimax连接、zigbee连接、uwb(ultrawideband)连接、以及其他现在已知或将来开发的无线连接方式。

通常,当上述集群启动时,集群中的各个节点可以在上述zookeeper服务器中注册,此时zookeeper服务器可以为上述各节点分配唯一的编号,其中编号最小的节点可以被确定为主节点,其余节点被确定为从节点。

步骤202,各节点向zookeeper服务器注册该节点待执行任务的任务信息,且主节点从zookeeper服务器获取各任务的任务信息。

在本实施例中,上述集群中的各节点包含至少一个待执行任务,当集群启动时,集群中的各节点(包括上述主节点和从节点)可以向上述zookeeper服务器注册各节点所包含的待执行任务的相关任务信息。这里的任务信息例如可以包括任务的名称、任务的触发条件、执行该任务耗时的最大阈值等,这里的任务信息可以根据实际的需要进行设定。而后上述主节点可以从zookeeper服务器中获取各节点待执行任务的任务信息。

步骤203,当主节点根据任务信息确定第一任务被触发时,主节点从各从节点中确定用于执行第一任务的至少一个第一从节点。

在本实施例中,上述节点向zookeeper服务器注册的任务信息可以包括该任务的触发条件。基于上述各任务的触发条件,该主节点可以确定第一任务是否被触发,其中,第一任务为在上述zookeeper服务器注册的任意一个任务。例如,上述第一任务可以为一个每天零点执行的定时任务,该定时任务的名称为数据分析,触发条件为零点,则每天零点该定时任务就会被触发,当上述主节点确定第一任务被触发后,上述主节点可以根据上述各任务的任务信息从各从节点中获取注册该第一任务的至少一个节点,而后通过各种手段从中确定用于处理该第一任务的至少一个第一从节点,这里所确定的第一从节点即为执行上述第一任务的节点。

在本实施例的一些可选的实现方式中,通常可以存在多个节点向zookeeper服务器注册上述第一任务。当该第一任务被处触发时,主节点可以根据注册上述第一任务的各节点的负载等选择用于执行该第一任务的一个或多个第一从节点。

步骤204,主节点向第一从节点分配第一任务。

在本实施例中,上述主节点基于步骤203确定的用于处理上述第一任务的一个或多个第一从节点,其可以向上述第一从节点分配第一任务。

在本实施例的一些可选的实现方式中,当上述第一任务处理超时或失败时,上述主节点可以继续选择用于执行该第一任务的至少一个第二从节点,并向第二从节点分配上述第一任务。或者,当上述第一任务处理超时或失败时,直接结束该第一任务。

在本实施例的一些可选的实现方式中,向zookeeper服务器注册上述第一任务的节点可以包括主节点,因此,用于执行上述第一任务的节点可以是主节点和/或从节点。

本申请的上述实施例提供的方法,利用zookeeper服务器在集群中确定主节点,并存储集群中各节点注册到其上的任务信息,使得主节点在各任务被触发而为各任务分配执行节点时可以具有多个选择, 避免了单点风险,实现了对集群中各任务的协调处理。

继续参考图3,其示出了本申请集群任务协调方法的又一实施例的示意性流程图300,该集群任务协调方法的流程300,包括以下步骤:

步骤301,包含多个节点的集群启动时,zookeeper服务器从集群的各节点中确定一个主节点和多个从节点。

在本实施例中,在如图1所示的集群任务协调系统中的集群启动时,zookeeper服务可以通过有线连接方式或者无线连接方式从上述集群所有的节点中确定一个主节点,集群中的除了主节点外其它的节点均为从节点。

步骤302,各节点向zookeeper服务器注册该节点待执行任务的任务信息,且主节点从zookeeper服务器获取各任务的任务信息。

上述集群中的各节点包含至少一个待执行任务,当集群启动时,集群中的各节点(包括上述主节点和从节点)可以向上述zookeeper服务器注册各节点所包含的待执行任务的相关任务信息。这里的任务信息包括任务的名称、任务的触发条件、执行该任务耗时的最大阈值等,这里的任务信息可以根据实际的需要进行设定。而后上述主节点可以从zookeeper服务器中获取各节点待执行任务的任务信息。

步骤303,当主节点根据任务信息确定第一任务被触发时,主节点生成第一任务的会话。

在本实施例中,上述主节点基于步骤202中获取的各节点待执行任务的任务信息,该主节点可以确定第一任务是否被触发,其中,第一任务为在上述zookeeper服务器注册的任意一个任务。当上述第一任务被触发时,在上述主节点中可以生成该第一任务对应的会话,该会话可以用于监控第一任务的处理进程,其中可以包含该第一任务的相关信息,如用于执行该第一任务的节点编号、该第一任务的耗时长度等。或者,上述会话也可以认为是针对第一任务生成的任务日志。

步骤304,若第一任务为独占任务,则主节点从各从节点中确定用于执行第一任务的一个第一从节点。

在本实施例中,上述节点向zookeeper服务器注册的任务信息还包括任务类型信息,这里的任务类型包括独占任务和并行任务。即上 述各节点中的待执行任务可以包括独占任务和并行任务,其中,并行任务中可以包括多个子任务。因此,上述主节点可以首先判断上述第一任务的任务类型,若该第一任务为独占任务时,则上述主节点可以从各从节点中确定用于执行该第一任务的一个第一从节点。

需要说明的是,通常向上述zookeeper服务器注册上述第一任务的节点可以包括主节点和多个从节点,如果基于负载均衡考虑,在上述主节点和多个从节点中该主节点的负载最小,则可以确定该主节点为执行上述第一任务的节点。

步骤305,若第一任务为并行任务,则第一任务包含多个子任务,主节点从各从节点中确定用于执行各子任务的多个第一从节点。

在本实施例中,若上述主节点判断出上述第一任务的任务类型为并行任务,则可以确定该第一任务包含多个子任务,上述主节点可以从各从节点中确定用于执行上述各子任务的多个第一从节点。

需要说明的是,向上述zookeeper服务器注册上述第一任务中各子任务的节点可以包括主节点和多个从节点,如果基于负载均衡考虑,在上述主节点和多个从节点中该主节点的负载最小,则可以确定该主节点为执行对应的上述子任务的节点。

步骤306,主节点向第一从节点分配该第一任务。

在本实施例中,当上述第一任务为独占任务,主节点确定用于执行该第一任务的一个第一从节点时,上述主节点将该独占任务分配给该第一从节点,以使该第一从节点执行该第一任务;当上述第一任务为包括多个子任务的并行任务,主节点确定用于执行该第一任务的多个第一从节点时,上述主节点将各子任务分配给对应的第一从节点,以使各第一从节点并列执行该第一任务。

在本实施例的一些可选的实现方式中,上述主节点还可以基于上述生成的第一任务的会话确定该第一任务的耗时长度,而后将该耗时长度与第一任务对应的任务信息中的任务耗时最大阈值对比,如果第一任务的耗时长度大于该第一任务耗时最大阈值,则在上述会话中标记该第一任务超时。

本实施例的一些可选的实现方式中,当上述第一任务超时或失败 时,主节点可以继续确定用于执行该第一任务的至少一个第二从节点,而后将该第一任务分配给上述第二从节点。

本申请的上述实施例提供的方法,通过采用zookeeper框架使得集群任务的协调不依赖数据库,并且该方法既能满足独占任务的协调又能满足并行任务的协调。

进一步参考图4,作为对上述各图所示方法的实现,本申请提供了一种集群任务协调装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。

如图4所示,本实施例所述的集群任务协调装置400包括:主从节点确定模块401、任务信息注册模块402、第一从节点确定模块403和第一任务分配模块404。其中,主从节点确定模块401配置用于包含多个节点的集群启动时,zookeeper服务器从该集群的各节点中确定一个主节点和多个从节点;任务信息注册模块402配置用于各节点向上述zookeeper服务器注册该节点待执行任务的任务信息,且上述主节点从zookeeper服务器获取各任务的任务信息,其中,任务信息包括该节点待执行任务的触发条件;第一从节点确定模块403配置用于当上述主节点根据上述任务信息确定第一任务被触发时,主节点从各从节点中确定用于执行上述第一任务的至少一个第一从节点,其中,第一任务为在上述zookeeper服务器注册的任意一个任务;第一任务分配模块404配置用于主节点向上述第一从节点分配上述第一任务。

在本实施例的一些可选的实现方式中,上述节点向zookeeper服务器注册的任务信息还包括任务类型信息,这里的任务类型包括独占任务和并行任务。上述第一从节点确定模块403配置具体用于:若上述第一任务为独占任务,则上述主节点从各从节点中确定用于执行该第一任务的一个第一从节点;若上述第一任务为并行任务,则第一任务包含多个子任务,上述主节点从各从节点中确定用于执行各子任务的多个第一从节点。

在本实施例的一些可选的实现方式中,上述集群任务协调装置400还包括:会话生成模块(未示出)配置用于当上述主节点根据任务信息确定第一任务被触发时,该主节点生成该第一任务的会话,其 中,会话用于监控第一任务的处理进程。

在本实施例的一些可选的实现方式中,上述任务信息还包括该节点待执行任务耗时最大阈值;上述集群任务协调装置400还包括:超时标记模块(未示出)配置具体用于基于上述第一任务的会话,上述主节点获取所述第一任务的耗时长度;当第一任务的耗时长度大于该第一任务耗时最大阈值时,上述会话标记第一任务超时。

在本实施例的一些可选的实现方式中,上述集群任务协调装置400还包括第二从节点确定模块(未示出):配置用于当上述第一任务超时或失败时,上述主节点确定用于执行该第一任务的至少一个第二从节点;以及该主节点向第二从节点分配上述第一任务。

本领域技术人员可以理解,上述集群任务协调装置400还包括一些其他公知结构,例如处理器、存储器等,为了不必要地模糊本公开的实施例,这些公知的结构在图4中未示出。

下面参考图5,其示出了适于用来实现本申请实施例的终端设备或服务器的计算机系统500的结构示意图。

如图5所示,计算机系统500包括中央处理单元(cpu)501,其可以根据存储在只读存储器(rom)502中的程序或者从存储部分508加载到随机访问存储器(ram)503中的程序而执行各种适当的动作和处理。在ram503中,还存储有系统500操作所需的各种程序和数据。cpu501、rom502以及ram503通过总线504彼此相连。输入/输出(i/o)接口505也连接至总线504。

以下部件连接至i/o接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至i/o接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以 被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。

附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括主从节点确定模块、任务信息注册模块、第一从节点确定模块和第一任务分配模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,主从节点确定模块还可以被描述为“包含多个节点的集群启动时,zookeeper服务器从所述集群的各所述节点中确定一个主节点和多个从节点的模块”。

作为另一方面,本申请还提供了一种非易失性计算机存储介质,该非易失性计算机存储介质可以是上述实施例中所述装置中所包含的非易失性计算机存储介质;也可以是单独存在,未装配入终端中的非易失性计算机存储介质。上述非易失性计算机存储介质存储有一个或者多个程序,当所述一个或者多个程序被一个设备执行时,使得所述设备:包含多个节点的集群启动时,zookeeper服务器从所述集群的各 所述节点中确定一个主节点和多个从节点;各所述节点向所述zookeeper服务器注册该节点待执行任务的任务信息,且所述主节点从所述zookeeper服务器获取各所述任务的任务信息,其中,所述任务信息包括该节点待执行任务的触发条件;当所述主节点根据所述任务信息确定第一任务被触发时,所述主节点从各所述从节点中确定用于执行所述第一任务的至少一个第一从节点,其中,所述第一任务为在所述zookeeper服务器注册的任意一个任务;所述主节点向所述第一从节点分配所述第一任务。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1