基于多任务系统的分布式系统和方法

文档序号:6503067阅读:165来源:国知局
基于多任务系统的分布式系统和方法
【专利摘要】本发明提供了一种基于多任务系统的分布式系统,包括:分配单元,用于为各系统节点上的系统实例分配处理资源,以及在所述各系统节点中的一个系统节点出现故障时,将所述一个系统节点上的系统实例未处理的资源分配给指定系统实例,其中,所述指定系统实例是所述各系统节点中与所述一个系统节点具有承接关系的系统节点上的系统实例。相应地,本发明还提供了一种基于多任务系统的分布式方法。根据本发明的技术方案,能够使各系统相互承接而又不相互争抢资源,可避免资源的重复处理和遗漏。
【专利说明】基于多任务系统的分布式系统和方法

【技术领域】
[0001]本发明涉及计算机【技术领域】,具体而言,涉及一种基于多任务系统的分布式系统和一种基于多任务系统的分布式方法。

【背景技术】
[0002]目前分布式系统的实现有很多,大多是通过实现一个独立于集群之外的监视进程实现的。常用的数据通同步的方法主要有以下几种:
[0003]设置或安装第三方程序或硬件提供的功能,实时监视分布式中任务执行情况,并据此进行合理资源分配。虽然通过第三方程序或硬件提供的功能可监控任务执行情况,但仍会出现系统之间争抢资源的问题,导致资源的重复处理或遗漏。
[0004]因此,需要一种新的分布式系统,可使参与负载的各系统实例之间相互承接而又相互独立,可避免资源的重复处理或遗漏。


【发明内容】

[0005]考虑到相关技术中出现的技术问题,本发明所要解决的技术问题在于,提供一种基于多任务系统的分布式技术,可使参与负载的各系统实例之间相互承接而又相互独立,可避免资源的重复处理或遗漏。
[0006]有鉴于此,根据本发明的一个方面,提供了一种基于多任务系统的分布式系统,包括:分配单元,用于为各系统节点上的系统实例分配处理资源,以及在所述各系统节点中的一个系统节点出现故障时,将所述一个系统节点上的系统实例未处理的资源分配给指定系统实例,其中,所述指定系统实例是所述各系统节点中与所述一个系统节点具有承接关系的系统节点上的系统实例。
[0007]在该技术方案中,系统节点之间具有相互承接关系,当某系统节点发生故障时,将此系统节点未处理的资源分配给监控该系统节点的系统节点,避免资源的遗漏处理;各系统节点处理本节点被分配到的资源,由于各系统节点的职能相同,且各系统节点之间相互独立,因此避免了资源的争抢。
[0008]在上述技术方案中,优选的,还可以包括:承接关系确定单元,用于根据各所述系统实例的启动顺序,排列所述各系统节点上的系统实例,形成环状结构,根据所述环状结构中各系统实例的连接关系,确定各系统节点之间的承接关系。
[0009]在该技术方案中,通过各系统节点上的系统实例之间的启动时间关系,确定各系统节点之间的承接关系,通过这种方式确定各系统节点的唯一监控系统节点。
[0010]在上述技术方案中,优选的,所述承接关系确定单元用于在所述环状结构中,按照顺时针顺序,将与所述一个系统节点相邻的下一个系统节点作为与所述一个系统节点具有承接关系的系统节点,或者在所述环状结构中,按照逆时针顺序,将与所述一个系统节点相邻的上一个系统节点作为与所述一个系统节点具有承接关系的系统节点。
[0011]在上述技术方案中,优选的,所述承接关系确定单元包括:删除子单元,用于在所述一个系统节点出现故障时,在所述环状结构中删除所述一个系统节点;增加子单元,用于在增加新系统节点时,基于所述新系统节点上的系统实例的启动时间,在所述环状结构中最后一个启动的系统节点的后面添加所述新系统节点。各系统节点上的系统实例是利用在环状结构中的相对位置进行互相感知的,当发现系统实例退出环状结构或新的系统实例加入环状结构时,不影响整体逻辑,保证了资源分配处理的准确性。
[0012]在上述任一技术方案中,优选的,还可以包括:记录单元,记录所述各系统节点上的系统实例到数据库中签到的时间,判断各所述系统实例最后一次的签到时间与当前时间之间的时间间隔;故障确定单元,在所述时间间隔大于等于时间间隔阈值时,确定与所述系统实例对应的系统节点出现故障,关闭所述系统实例。
[0013]当系统实例很久没有到数据库签到,可认为与该系统实例对应的系统节点出现了故障,不能正常处理所分配到的资源,因此,由与该故障系统节点具有承接关系的系统节点接替该故障系统节点未完成的任务,保证资源不会被遗漏。
[0014]根据本发明的另一方面,还提供了一种基于多任务系统的分布式方法,包括:为各系统节点上的系统实例分配处理资源;在所述各系统节点中的一个系统节点出现故障时,将所述一个系统节点上的系统实例未处理的资源分配给指定系统实例,其中,所述指定系统实例是所述各系统节点中与所述一个系统节点具有承接关系的系统节点上的系统实例。
[0015]在该技术方案中,系统节点之间具有相互承接关系,当某系统节点发生故障时,将此系统节点未处理的资源分配给监控该系统节点的系统节点,避免资源的遗漏处理;各系统节点处理本节点被分配到的资源,由于各系统节点的职能相同,且各系统节点之间相互独立,因此避免了资源的争抢。
[0016]在上述技术方案中,优选的,所述承接关系的确定过程包括:根据各所述系统实例的启动顺序,排列所述各系统节点上的系统实例,形成环状结构;根据所述环状结构中各系统实例的连接关系,确定各系统节点之间的承接关系。通过各系统节点上的系统实例之间的启动时间关系,确定各系统节点之间的承接关系,通过这种方式确定各系统节点的唯一监控系统节点。
[0017]在上述技术方案中,优选的,在所述环状结构中,按照顺时针顺序,将与所述一个系统节点相邻的下一个系统节点作为与所述一个系统节点具有承接关系的系统节点,或者在所述环状结构中,按照逆时针顺序,将与所述一个系统节点相邻的上一个系统节点作为与所述一个系统节点具有承接关系的系统节点。
[0018]在上述技术方案中,优选的,在所述一个系统节点出现故障时,在所述环状结构中删除所述一个系统节点;在增加新系统节点时,基于所述新系统节点上的系统实例的启动时间,在所述环状结构中最后一个启动的系统节点的后面添加所述新系统节点。
[0019]各系统节点上的系统实例是利用在环状结构中的相对位置进行互相感知的,当发现系统实例退出环状结构或新的系统实例加入环状结构时,不影响整体逻辑,保证了资源分配处理的准确性。
[0020]在上述任一技术方案中,优选的,所述故障的确定过程包括:记录所述各系统节点上的系统实例到数据库中签到的时间,判断各所述系统实例最后一次的签到时间与当前时间之间的时间间隔;在所述时间间隔大于等于时间间隔阈值时,确定与所述系统实例对应的系统节点出现故障,关闭所述系统实例。
[0021]当系统实例很久没有到数据库签到,可认为与该系统实例对应的系统节点出现了故障,不能正常处理所分配到的资源,因此,由与该故障系统节点具有承接关系的系统节点接替该故障系统节点未完成的任务,保证资源不会被遗漏。
[0022]将根据本发明的分布式系统应用在多个相同职能的包含多任务的系统实例负载时,如果这样的系统集群用来处理某数据资源:由于系统实例之间的职能相同,采用独立分配原则,各自独立处理各自被分配到的资源,避免会出现争抢资源(并发重复处理);各系统节点之间相互承接,当某系统节点发生故障后,此系统节点未来得及处理的资源将重新被分配给另一个指定的系统节点继续被处理,避免已被分配资源的系统故障而使这部分资源被遗漏处理。

【专利附图】

【附图说明】
[0023]图1示出了根据本发明的实施例的基于多任务系统的分布式系统的框图;
[0024]图2示出了根据本发明的实施例的基于多任务系统的分布式方法的流程图;
[0025]图3示出了根据本发明的实施例的动态变化后的环状结构示意图;
[0026]图4示出了根据本发明的实施例的动态变化后的环状结构示意图;
[0027]图5示出了根据本发明的实施例的分布式系统的示意图。

【具体实施方式】
[0028]为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和【具体实施方式】对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
[0029]在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明并不限于下面公开的具体实施例的限制。
[0030]图1示出了根据本发明的实施例的基于多任务系统的分布式系统的框图。
[0031]如图1所示,根据本发明的实施例的基于多任务系统的分布式系统100,包括:分配单元102,用于为各系统节点上的系统实例分配处理资源,以及在各系统节点中的一个系统节点出现故障时,将一个系统节点上的系统实例未处理的资源分配给指定系统实例,其中,指定系统实例是各系统节点中与一个系统节点具有承接关系的系统节点上的系统实例。
[0032]由于系统节点之间具有相互承接关系,因此当某系统节点发生故障时,可将此系统节点未处理的资源分配给监控该系统节点的系统节点,避免资源的遗漏处理;各系统节点处理本节点被分配到的资源,由于各系统节点的职能相同,且各系统节点之间相互独立,因此避免了资源的争抢(并发重复处理)。
[0033]优选的,根据本发明的实施例的基于多任务系统的分布式系统100还可以包括:承接关系确定单元104,用于根据各系统实例的启动顺序,排列各系统节点上的系统实例,形成环状结构,根据环状结构中各系统实例的连接关系,确定各系统节点之间的承接关系。
[0034]通过各系统节点上的系统实例之间的启动时间关系,确定各系统节点之间的承接关系,通过这种方式确定各系统节点的唯一监控系统节点。
[0035]在上述技术方案中,优选的,承接关系确定单元104用于在环状结构中,按照顺时针顺序,将与一个系统节点相邻的下一个系统节点作为与一个系统节点具有承接关系的系统节点,或者在环状结构中,按照逆时针顺序,将与一个系统节点相邻的上一个系统节点作为与一个系统节点具有承接关系的系统节点。
[0036]优选的,承接关系确定单元104可以包括:删除子单元1042,用于在一个系统节点出现故障时,在环状结构中删除一个系统节点;增加子单元1044,用于在增加新系统节点时,基于新系统节点上的系统实例的启动时间,在环状结构中最后Iv启动的系统节点的后面添加新系统节点。
[0037]各系统节点上的系统实例是利用在环状结构中的相对位置进行互相感知的,当发现系统实例退出环状结构或新的系统实例加入环状结构时,不影响整体逻辑,保证了资源分配处理的准确性。
[0038]优选的,根据本发明的实施例的基于多任务系统的分布式系统100还可以包括:记录单元106,记录各系统节点上的系统实例到数据库中签到的时间,判断各系统实例最后一次的签到时间与当前时间之间的时间间隔;故障确定单元108,在时间间隔大于等于时间间隔阈值时,确定与系统实例对应的系统节点出现故障,关闭系统实例。
[0039]当系统实例很久没有到数据库签到,可认为与该系统实例对应的系统节点出现了故障,不能正常处理所分配到的资源,因此,由与该故障系统节点具有承接关系的系统节点接替该故障系统节点未完成的任务,保证资源不会被遗漏。
[0040]将根据本发明的分布式系统应用在多个相同职能的包含多任务的系统实例负载时,如果这样的系统集群用来处理某数据资源:由于系统实例之间的职能相同,采用独立分配原则,各自独立处理各自被分配到的资源,避免会出现争抢资源(并发重复处理);各系统节点之间相互承接,当某系统节点发生故障后,此系统节点未来得及处理的资源将重新被分配给另一个指定的系统节点继续被处理,避免已被分配资源的系统故障而使这部分资源被遗漏处理。
[0041]图2示出了根据本发明的实施例的基于多任务系统的分布式方法的流程图。
[0042]如图2所示,根据本发明的实施例的基于多任务系统的分布式方法,可以包括以下步骤:
[0043]步骤202,为各系统节点上的系统实例分配处理资源;步骤204,在各系统节点中的一个系统节点出现故障时,将一个系统节点上的系统实例未处理的资源分配给指定系统实例,其中,指定系统实例是各系统节点中与一个系统节点具有承接关系的系统节点上的系统实例。
[0044]由于系统节点之间具有相互承接关系,因此当某系统节点发生故障时,可将此系统节点未处理的资源分配给监控该系统节点的系统节点,避免资源的遗漏处理;各系统节点处理本节点被分配到的资源,由于各系统节点的职能相同,且各系统节点之间相互独立,因此避免了资源的争抢。
[0045]在上述技术方案中,优选的,承接关系的确定过程包括:根据各系统实例的启动顺序,排列各系统节点上的系统实例,形成环状结构;根据环状结构中各系统实例的连接关系,确定各系统节点之间的承接关系。
[0046]通过各系统节点上的系统实例之间的启动时间关系,确定各系统节点之间的承接关系,通过这种方式确定各系统节点的唯一监控系统节点。
[0047]在上述技术方案中,优选的,在环状结构中,按照顺时针顺序,将与一个系统节点相邻的下一个系统节点作为与一个系统节点具有承接关系的系统节点,或者在环状结构中,按照逆时针顺序,将与一个系统节点相邻的上一个系统节点作为与一个系统节点具有承接关系的系统节点。
[0048]在上述技术方案中,优选的,在一个系统节点出现故障时,在环状结构中删除一个系统节点;在增加新系统节点时,基于新系统节点上的系统实例的启动时间,在环状结构中最后Iv启动的系统节点的后面添加新系统节点。
[0049]各系统节点上的系统实例是利用在环状结构中的相对位置进行互相感知的,当发现系统实例退出环状结构或新的系统实例加入环状结构时,不影响整体逻辑,保证了资源分配处理的准确性。
[0050]在上述任一技术方案中,优选的,故障的确定过程可以包括:记录各系统节点上的系统实例到数据库中签到的时间,判断各系统实例最后一次的签到时间与当前时间之间的时间间隔;在时间间隔大于等于时间间隔阈值时,确定与所述系统实例对应的系统节点出现故障,关闭所述系统实例。
[0051]当系统实例很久没有到数据库签到,可认为与该系统实例对应的系统节点出现了故障,不能正常处理所分配到的资源,因此,由与该故障系统节点具有承接关系的系统节点接替该故障系统节点未完成的任务,保证资源不会被遗漏。
[0052]下面结合图3和图4进一步说明根据本发明的基于多任务系统的分布式方法。
[0053]参与分布式系统的各系统节点上的系统实例依次启动,并记录各系统节点的启动顺序。然后按启动顺序排列各系统节点并且首尾相接,形成环状结构,如图3所示,即使各系统实例分布在一个虚拟的环形装置上(每个系统实例都要求有一个唯一标识)。
[0054]为每个系统节点上的系统实例分配资源,资源被分配后带有相应系统节点上的系统实例的唯一标识。
[0055]各系统实例活跃性到数据库签到,各系统实例可根据设定好的时间间隔持续签至IJ,记录每个系统实例最后一次签到的时间。如果某系统实例最后一次签到的时间与当前时间之间的时间间隔已经超过允许的最大时间间隔,则置该系统实例为已关闭,并由该系统实例的上一系统实例或下一系统实例接受此系统实例未完成的所有任务并继续执行,其中,该上一系统实例是在环形结构中,沿顺时针方向,该系统实例的上一个系统实例,该下一系统实例是在环形结构中,沿逆时针方向,该系统实例的下一个系统实例。
[0056]需说明的是,各系统实例组成的环状结构是动态的,各系统实例是利用相对位置互相感知的,所以被发现已关闭的系统实例退出环状结构或新的系统实例加入都不影响整体逻辑。原则上只要保证每个系统实例在同一时间有且只有一个监控者。如图3所示,在该环状结构中,系统节点I出现故障,其上的系统实例被关闭,因此退出该环状结构,系统实例的减少不会影响系统实例之间的逻辑关系。又如图4所示,在环状结构中增加了系统实例7,该系统实例7的加入同样不会影响原系统实例之间的逻辑关系。
[0057]图5示出了根据本发明的实施例的分布式系统的示意图。
[0058]如图5所示,该分布式系统包含了 4个服务器,分布式服务器A、服务器B、服务器C和服务器D,它们可共同访问数据库500。每个服务器在该分布式系统中可被认为是系统节点,每个系统节点上运行相应的系统实例,每个系统实例的职能相同,但相互独立,具有唯一标识。为每个系统实例分配了相应的资源,并且每个资源带上相应系统实例的唯一标识,实现资源的独立处理,避免出现资源的争抢。基于各系统实例的启动时间(每个系统节点上的系统实例的启动时间均不一样),建立系统节点之间的相互承接关系,利用相对位置实现互相感知,在其中某系统节点出现问题时,可由与该系统节点具有承接关系的系统节点接替其为完成的任务继续处理,以避免资源的遗漏处理,因此实现了一种安全稳定的多个包含多任务的系统实例的分布式,使参与负载的各系统实例之间有序感应,进而相互承接而又相互独立不争抢资源(并发重复处理),可完全避免被处理资源的重复处理和遗漏。
[0059]以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种基于多任务系统的分布式系统,其特征在于,包括: 分配单元,用于为各系统节点上的系统实例分配处理资源,以及在所述各系统节点中的一个系统节点出现故障时,将所述一个系统节点上的系统实例未处理的资源分配给指定系统实例, 其中,所述指定系统实例是所述各系统节点中与所述一个系统节点具有承接关系的系统节点上的系统实例。
2.根据权利要求1所述的基于多任务系统的分布式系统,其特征在于,还包括: 承接关系确定单元,用于根据各所述系统实例的启动顺序,排列所述各系统节点上的系统实例,形成环状结构,根据所述环状结构中各系统实例的连接关系,确定各系统节点之间的承接关系。
3.根据权利要求2所述的基于多任务系统的分布式系统,其特征在于,所述承接关系确定单元用于在所述环状结构中,按照顺时针顺序,将与所述一个系统节点相邻的下一个系统节点作为与所述一个系统节点具有承接关系的系统节点,或者在所述环状结构中,按照逆时针顺序,将与所述一个系统节点相邻的上一个系统节点作为与所述一个系统节点具有承接关系的系统节点。
4.根据权利要求2所述的基于多任务系统的分布式系统,其特征在于,所述承接关系确定单元包括: 删除子单元,用于在所述一个系统节点出现故障时,在所述环状结构中删除所述一个系统节点; 增加子单元,用于在增加新系统节点时,基于所述新系统节点上的系统实例的启动时间,在所述环状结构中最后一个启动的系统节点的后面添加所述新系统节点。
5.根据权利要求1至4中任一项所述的基于多任务系统的分布式系统,其特征在于,还包括: 记录单元,用于记录所述各系统节点上的系统实例到数据库中签到的时间,判断各所述系统实例最后一次的签到时间与当前时间之间的时间间隔; 故障确定单元,用于在所述时间间隔大于等于时间间隔阈值时,确定与所述系统实例对应的系统节点出现故障,关闭所述系统实例。
6.一种基于多任务系统的分布式方法,其特征在于,包括: 为各系统节点上的系统实例分配处理资源; 在所述各系统节点中的一个系统节点出现故障时,将所述一个系统节点上的系统实例未处理的资源分配给指定系统实例, 其中,所述指定系统实例是所述各系统节点中与所述一个系统节点具有承接关系的系统节点上的系统实例。
7.根据权利要求6所述的基于多任务系统的分布式方法,其特征在于,所述承接关系的确定过程包括: 根据各所述系统实例的启动顺序,排列所述各系统节点上的系统实例,形成环状结构; 根据所述环状结构中各系统实例的连接关系,确定各系统节点之间的承接关系。
8.根据权利要求7所述的基于多任务系统的分布式方法,其特征在于,在所述环状结构中,按照顺时针顺序,将与所述一个系统节点相邻的下一个系统节点作为与所述一个系统节点具有承接关系的系统节点,或者在所述环状结构中,按照逆时针顺序,将与所述一个系统节点相邻的上一个系统节点作为与所述一个系统节点具有承接关系的系统节点。
9.根据权利要求7所述的基于多任务系统的分布式方法,其特征在于,在所述一个系统节点出现故障时,在所述环状结构中删除所述一个系统节点; 在增加新系统节点时,基于所述新系统节点上的系统实例的启动时间,在所述环状结构中最后一个启动的系统节点的后面添加所述新系统节点。
10.根据权利要求6至9中任一项所述的基于多任务系统的分布式方法,其特征在于,所述故障的确定过程包括: 记录所述各系统节点上的系统实例到数据库中签到的时间,判断各所述系统实例最后一次的签到时间与当前时间之间的时间间隔; 在所述时间间隔大于等于时间间隔阈值时,确定与所述系统实例对应的系统节点出现故障,关闭所述系统实例。
【文档编号】G06F9/50GK104182277SQ201310189250
【公开日】2014年12月3日 申请日期:2013年5月21日 优先权日:2013年5月21日
【发明者】刘营宇, 闫进兵, 尚灿 申请人:北大方正集团有限公司, 北京方正阿帕比技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1