分布式多机系统、控制方法及控制装置与流程

文档序号:12751866阅读:405来源:国知局
分布式多机系统、控制方法及控制装置与流程

本公开涉及分布式多机领域,具体地,涉及一种分布式多机系统、控制方法及控制装置。



背景技术:

分布式多机系统是将多台任务机通过通信网络连接起来,协调地完成大规模任务的计算机系统。

为了发现任务机宕机,分布式多机系统会建立一个共享资源池来记录各个任务机的心跳状态。每一任务机都定期去共享资源池来检测所有任务机的心跳状态,根据心跳状态来判断某一任务机是否发生宕机。

然而,每一任务机都定期去共享资源池来检测所有任务机的心跳状态,造成各个任务机会反复的检测相同任务机的心跳状态,造成计算资源的浪费,降低了分布式多机的性能。



技术实现要素:

有鉴于此,本公开提供了一种分布式多机系统、控制方法及控制装置,以实现减少计算资源浪费,提高分布式多机性能的目的。

在本公开实施例的一个方面中,提供了一种分布式多机系统。该分布式多机系统形成树形结构的多级关系,包括:根节点机、中间节点机、以及叶子节点机。所述根节点机以及所述中间节点机,被配置为接收子节点机上报的心跳状态,根据所述子节点机的心跳状态判断所述子节点机是否发生宕机,其中,所述中间节点机,还被配置为向父节点机上报所述中间节点机的心跳状态。所述叶子节点机,被配置为向父节点机上报所述叶子节点机的心跳状态。

可选地,所述根节点机以及所述中间节点机还被配置为在确定所述子节点机发生宕机的情况下,将所述分布式多机系统中的任一未发生宕机的叶子节点机补位到所述子节点机,并将所述子节点机尚未完成处理的任务重新分配给所述分布式多机的其他节点机。

可选地,所述根节点机至少包括第一任务机以及第二任务机。其中,所述第一任务机,被配置为对所述第二任务机进行心跳监测,在监测到所述第二任务机发生宕机的情况下,将所述分布式多机系统中的任一未发生宕机的叶子节点机补位到所述第二任务机。

可选地,所述根节点机还被配置为按预置的任务分发策略,计算出需要发放给每一节点机的任务,根据需要发放给每一节点机的任务,执行属于所述根节点机的任务,并将属于所述根节点机的子孙节点机的任务发放到相应的子节点机。所述中间节点机还被配置为接收父节点机分发的任务,执行属于所述中间节点机的任务,并将属于所述中间节点机的子孙节点机的任务发放到相应的子节点机。所述叶子节点机还被配置为接收父节点机分发的任务,执行属于所述叶子节点机的任务。

可选地,所述任务分发策略为按所述分布式多机中任务机的数量平均分配任务。

在本公开实施例的另一个方面中,提供了一种分布式多机系统控制方法。其中,所述分布式多机系统形成树形结构的多级关系。所述方法应用于所述分布式多机系统的非叶子节点机,所述方法包括:接收子节点机上报的心跳状态;根据所述子节点机的心跳状态判断所述子节点机是否发生宕机。

可选地,所述方法还包括:在确定所述子节点机发生宕机的情况下,将所述分布式多机系统中的任一未发生宕机的叶子节点机补位到所述子节点机,并将所述子节点机尚未完成处理的任务重新分配给所述分布式多机的其他节点机。

可选地,所述方法还包括:在所述非叶子节点为根节点机的情况下,所述根节点机按预置的任务分发策略,计算出需要发放给每一节点机的任务;所述根节点机根据需要发放给每一节点机的任务,执行属于所述根节点机的任务,并将属于所述根节点机的子孙节点机的任务发放到相应的子节点机;在所述非叶子节点为中间节点机的情况下,所述中间节点机接收到父节点机分发的任务,执行属于所述中间节点机的任务,并将属于所述中间节点机的子孙节点机的任务发放到相应的子节点机。

可选地,所述任务分发策略为按所述分布式多机中任务机的数量平均分配任务。

在本公开实施例的又一方面中,提供了一种分布式多机系统控制装置。所述分布式多机系统形成树形结构的多级关系,所述装置配置于所述分布式多机系统的非叶子节点机,所述装置包括:接收模块,被配置为接收子节点机上报的心跳状态。判断模块,被配置为根据所述子节点机的心跳状态判断所述子节点机是否发生宕机。

通过上述技术方案,分布式多机系统形成树形结构的多级关系,非叶子节点机接收子节点机上报的心跳状态,非叶子节点机根据子节点机的心跳状态判断所述子节点机是否发生宕机,从而由每个任务机检查改进为非叶子节点机检查,由检查所有任务机改进为检查自身的子节点机,减少了宕机检查的消耗,实现了减少计算资源浪费,提高分布式多机性能的目的。

本公开的其他特征和优点机将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:

图1是根据一示例性实施例示出的实施环境示意图。

图2是根据本发明的一示例性实施例示出的一种分布式多机系统。

图3是根据本发明的一示例性实施例示出的一种分布式多机系统控制方法的流程图。

图4是根据本发明的另一示例性实施例示出的一种分布式多机系统控制方法的流程图。

图5是根据本发明的一示例性实施例示出的一种分布式多机系统控制装置的框图。

图6是根据本发明的另一示例性实施例示出的一种分布式多机系统控制装置的框图。

具体实施方式

以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。

图1是根据一示例性实施例示出的实施环境示意图。该实施环境包括:业务系统110以及分布式多机系统120。其中,所述业务系统110,用于产生任务。所述分布式多机系统120,用于执行业务系统110产生的任务。

可以理解的是,图1所示实施环境仅用于示意本发明实施例提供的方法,并不构成对本发明实施例的限制。

图2是根据本发明的一示例性实施例示出的一种分布式多机系统。如图2所示,该分布式多机系统形成树形结构的多级关系。该系统可以包括:根节点机210、中间节点机2201~2208、以及叶子节点机2301~2364。

其中,图2所示分布式多机系统除了根节点机以外,每级包括8台任务机,且根节点机包括两台任务机、其他节点机包括一台任务机。可以理解的是,该图2所示系统仅为本公开实施例一可能的实施方式。实际上,分布式多机系统的级数、每级所包含的任务机的数量,以及,每个节点机所包含的任务机的数量,可以根据实际需要以及任务机计算能力来设置,本公开对此并不进行限制。

其中,根节点机210以及中间节点机2201~1208,可以被配置为接收子节点机上报的心跳状态,根据所述子节点机的心跳状态判断所述子节点机是否发生宕机。例如,可以预设心跳间隔时长阈值,在子节点机最后一次上报的心跳状态距当前时刻超出心跳间隔时长阈值时,确定子节点机发生宕机。

该中间节点机2201~2208,还可以被配置为向父节点机上报所述中间节点机的心跳状态。

该叶子节点机2301~2364,可以被配置为向父节点机上报心跳状态。

例如,如图2所示的根节点机210可以接收中间节点机2201~2208上报的心跳状态,中间节点机2201可以接收叶子节点机2301~2308上报的心跳状态,其他中间节点机以此类推,不再赘述。

可见,由于本公开实施例的分布式多机系统形成树形结构的多级关系,非叶子节点机接收子节点机上报的心跳状态,非叶子节点机根据子节点机的心跳状态判断所述子节点机是否发生宕机,从而由每个任务机检查改进为非叶子节点机检查,由检查所有任务机改进为检查自身的子节点机,减少了宕机检查的消耗,实现了减少计算资源浪费,提高分布式多机性能的目的。

需要说明的是,在根节点机或中间节点机确定其子节点机发生宕机的情况下,可以自动进行宕机处理,也可以通知相关人员进行人工恢复。

例如,本公开实施例可以通过以下方式自动进行宕机处理。具体地,根节点机210以及中间节点机2201~2208还可以被配置为在确定所述子节点机发生宕机的情况下,将所述分布式多机系统中的任一未发生宕机的叶子节点机补位到所述子节点机,并将所述子节点机尚未完成处理的任务重新分配给所述分布式多机的其他节点机。

可以理解的是,补位是指将用来补位的叶子节点机在树形结构中的位置从原来的叶子节点处改变为宕机的节点处,从而,宕机的节点恢复接收子节点上报心跳状态,以及,上报自身心跳状态的功能。不过,宕机恢复的节点所执行的任务仍然为原用来补位的任务机的任务,宕机的任务机的任务则需要重新分配给其他节点机来执行。

例如,根节点机210以及中间节点机2201~2208可以被配置为在确定子节点机发生宕机的情况下,将分布式多机系统中的最后一个叶子节点机补位到宕机的子节点机,并将宕机的子节点机尚未完成处理的任务重新分配给所述分布式多机的其他节点机。结合图2,假设根节点机210确定中间节点机2201发生宕机,可以将最后一个叶子节点机2364补位到中间节点机2201。从而,叶子节点机2364变为中间节点机2201,中间节点机2201恢复功能。

需要说明的是,本公开实施例对将宕机的节点机尚未完成处理的任务重新分配给分布式多机的其他节点机的实施方式不限。例如,一种可能的实施方式中,宕机的节点机尚未完成处理的任务可以放到共享资源池中,由空闲的节点机主动到共享资源池中去领取任务来执行。另一种可能的实施方式中,宕机的节点机尚未完成处理的任务可以交由根节点机进行重新分发。

可见,通过上述实施方式自动进行宕机处理,可以提高故障恢复效率,提高分布式多机性能。

在本公开又一实施例中,为了对根节点机的宕机进行监测,将所述根节点机设置为至少包括第一任务机以及第二任务机。其中,所述第一任务机,被配置为对所述第二任务机进行心跳监测,在监测到所述第二任务机发生宕机的情况下,将所述分布式多机系统中的任一未发生宕机的叶子节点机补位到所述第二任务机。例如,第一任务机以及第二任务机这两个任务机可以相互接收对方上报的心跳状态,根据对方的心跳状态判断对方是否宕机,在发现对方宕机的情况下,将所述分布式多机系统中的任一未发生宕机的叶子节点机补位到对方。例如,包括代替对方接收子节点机上报的心跳状态,等等。

需要说明的是,本公开实施例对分布式多机系统任务分配的实施方式不限。例如,各个节点机可以通过争抢的方式获得业务系统产生的任务。不过,考虑到该实施方式在大量节点机争抢任务时,存在锁所造成的性能瓶颈的问题,本公开实施例提供了以下分发任务的方式,以使任务分配效率更高,消除锁所造成的性能瓶颈的问题。具体地,如图2所示,根节点机210,还可以被配置为按预置的任务分发策略,计算出需要发放给每一节点机的任务,根据需要发放给每一节点机的任务,执行属于所述根节点机的任务,并将属于所述根节点机的子孙节点机的任务发放到相应的子节点机。中间节点机2201~2208,还可以被配置为接收父节点机分发的任务,执行属于所述中间节点机的任务,并将属于所述中间节点机的子孙节点机的任务发放到相应的子节点机。叶子节点机2301~2364,还可以被配置为接收父节点机分发的任务,执行属于所述叶子节点机的任务。

其中,本实施例所述的任务分发策略可以根据实际需要进行设置,本公开对此并不进行限制。例如,任务分发策略可以为按所述分布式多机中任务机的数量平均分配任务。

结合图2,假设根节点机210从业务系统领取到7400个任务,将7400个任务除以图2所示的74个任务机,则每个任务机需要分配100个任务。根节点机210留下200个任务(两个任务机各接收100个任务)。根节点机210将每900个任务分给一个中间节点机。中间节点机2201自己留下100个任务,将剩下800个任务平均分配给自己的子节点机2301~2308。依次类推,直到中间节点机2208自己留下100个任务,将剩下800个任务平均分配给自己的子节点机2356~2364。从而,图2所示分布式多机系统中的每个非根节点机的任务机均从自己的父节点机接收到自己的100个任务。需要说明的是,考虑到任务范围计算以及分发的速度比直接分发任务本身要快,因此,本实施例中根节点机所接收到的可以是用于表示一段任务范围的数值范围,在根节点机以及中间节点机分发任务时,分发的也是用于表示一段任务范围的数值范围,而真实的任务,可以由任务机根据所接收到的任务范围去领取。

可见,本实施例采用了父节点机为子节点机分配任务的方式,避免了大量节点机争抢任务所造成的性能瓶颈的问题,提高了任务分配效率,提高了分布式多机系统的性能。

图3是根据本发明的一示例性实施例示出的一种分布式多机系统控制方法的流程图。其中,该分布式多机系统形成树形结构的多级关系,该方法应用于所述分布式多机系统的非叶子节点机。如图3所示,该方法可以包括:

在步骤310中,接收子节点机上报的心跳状态。

在步骤320中,根据所述子节点机的心跳状态判断所述子节点机是否发生宕机。

可见,由于本公开实施例的分布式多机系统形成树形结构的多级关系,非叶子节点机接收子节点机上报的心跳状态,非叶子节点机根据子节点机的心跳状态判断所述子节点机是否发生宕机,从而由每个任务机检查改进为非叶子节点机检查,由检查所有任务机改进为检查自身的子节点机,减少了宕机检查的消耗,实现了减少计算资源浪费,提高分布式多机性能的目的。

图4是根据本发明的另一示例性实施例示出的一种分布式多机系统控制方法的流程图。其中,该分布式多机系统形成树形结构的多级关系,该方法应用于所述分布式多机系统的非叶子节点机。如图4所示,该方法可以包括:

在步骤401中,在所述非叶子节点为根节点机的情况下,所述根节点机按预置的任务分发策略,计算出需要发放给每一节点机的任务。

例如,所述任务分发策略可以为按所述分布式多机中任务机的数量平均分配任务。

在步骤402中,根节点机根据需要发放给每一节点机的任务,执行属于所述根节点机的任务,并将属于所述根节点机的子孙节点机的任务发放到相应的子节点机。

在步骤403中,在所述非叶子节点机为中间节点机的情况下,中间节点机接收到父节点机分发的任务,执行属于所述中间节点机的任务,并将属于所述中间节点机的子孙节点机的任务发放到相应的子节点机。

相应地,叶子节点机接收到父节点机分发的任务,并执行所接收的任务。

需要说明的是,上述步骤401~步骤403仅为本公开实施例任务分配的一种可能的实施方式。在另一种可能的实施方式中,各个节点机也可以通过争抢的方式获得业务系统产生的任务。不过,相对于通过争抢的方式获得任务,由于上述步骤401~步骤403分配任务的方式采用了父节点机为子节点机分配任务的方式,避免了大量节点机争抢任务所造成的性能瓶颈的问题,因此,可以提高任务分配效率,提高分布式多机系统的性能。

在步骤410中,分布式多机系统中的非叶子节点机接收子节点机上报的心跳状态。

例如,所述分布式多机系统中的根节点机可以包括至少两台任务机,第一任务机以及第二任务机。由所述第一任务机对所述第二任务机进行心跳监测,在监测到所述第二任务机发生宕机的情况下,将所述分布式多机系统中的任一未发生宕机的叶子节点机补位到所述第二任务机。

在步骤420中,非叶子节点机根据所述子节点机的心跳状态判断所述子节点机是否发生宕机。

在步骤430中,非叶子节点机在确定所述子节点机发生宕机的情况下,将所述分布式多机系统中的任一叶子节点机补位到所述子节点机,并将所述子节点机尚未完成处理的任务重新分配给所述分布式多机的其他节点机。

可见,通过本实施例自动进行宕机处理,可以提高故障恢复效率,提高分布式多机性能。

图5是根据本发明的一示例性实施例示出的一种分布式多机系统控制装置500的框图。其中,该分布式多机系统形成树形结构的多级关系,该装置配置于所述分布式多机系统的非叶子节点机。如图5所示,该装置可以包括:接收模块510以及判断模块520。

该接收模块510,可以被配置为接收子节点机上报的心跳状态。

该判断模块520,可以被配置为根据所述子节点机的心跳状态判断所述子节点机是否发生宕机。

可见,由于本公开实施例的分布式多机系统形成树形结构的多级关系,非叶子节点机接收子节点机上报的心跳状态,非叶子节点机根据子节点机的心跳状态判断所述子节点机是否发生宕机,从而由每个任务机检查改进为非叶子节点机检查,由检查所有任务机改进为检查自身的子节点机,减少了宕机检查的消耗,实现了减少计算资源浪费,提高分布式多机性能的目的。

图6是根据本发明的另一示例性实施例示出的一种分布式多机系统控制装置500的框图。其中,该分布式多机系统形成树形结构的多级关系,该装置配置于所述分布式多机系统的非叶子节点机。如图6所示,该装置还可以包括:宕机处理模块530,可以被配置为在确定所述子节点机发生宕机的情况下,将所述分布式多机系统中的任一未发生宕机的叶子节点机补位到所述子节点机,并将所述子节点机尚未完成处理的任务重新分配给所述分布式多机的其他节点机。

可见,通过本实施例自动进行宕机处理,可以提高故障恢复效率,提高分布式多机性能。

另一种可能的实施方式中,该装置还可以包括:分发计算模块540,可以被配置为在所述非叶子节点机为根节点机的情况下,所述根节点机按预置的任务分发策略,计算出需要发放给每一节点机的任务。根节点分发模块541,可以被配置为使所述根节点机根据需要发放给每一节点机的任务,执行属于所述根节点机的任务,并将属于所述根节点机的子孙节点机的任务发放到相应的子节点机。中间分发模块542,可以被配置为在所述非叶子节点机为中间节点机的情况下,所述中间节点机接收到父节点机分发的任务,执行属于所述中间节点机的任务,并将属于所述中间节点机的子孙节点机的任务发放到相应的子节点机。

其中,所述任务分发策略为按所述分布式多机中任务机的数量平均分配任务。

在上述实施方式中,由于采用了父节点机为子节点机分配任务的方式,避免了大量节点机争抢任务所造成的性能瓶颈的问题,因此,可以提高任务分配效率,提高分布式多机系统的性能。

以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。

此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

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