多节点间资源交换的方法及系统的制作方法

文档序号:7778813阅读:238来源:国知局
多节点间资源交换的方法及系统的制作方法
【专利摘要】本发明公开一种多节点间资源交换的方法,用于一分布式集群,所述分布式集群至少包括第一节点以及第二节点,每个节点所维护的其它节点成员的信息存储在内存中。所述方法包括:侦测分布式集群中是否有新节点加入;侦测各个节点中是否有资源变动;如果分布式集群中有新节点加入或资源变动,则触发第一节点与第二节点之间的资源交换;以及根据第一节点与第二节点的本地资源、所需资源类型以及找到的资源进行资源交换。本发明还提供一种多节点间资源交换的系统。
【专利说明】多节点间资源交换的方法及系统
【技术领域】
[0001]本发明涉及计算机网络的分布式系统领域,尤其涉及一种用于分布式系统多节点间资源交换的方法及系统。
【背景技术】
[0002]分布式系统通常由成千上万个节点所组成,每个节点上都会保存不同的信息资源,如何使这些节点可以互相获取其它节点上的资源,即实现节点间的资源交换的功能,成为了一个重要的问题。
[0003]目前,大家普遍采用通过在每个节点的配置文件中指定所有其它节点的方式来构建集群,然后在此集群中完成简单的资源交换工作。但通过这种方式实现的资源交换机制存在以下几个不足之处:
1、集群配置繁锁:对于集群中的每一个节点,其配置文件中必须指定除本节点以外的所有节点,因此,当集群中的节点成员需要发生变动时,必须手动修改所有节点的配置文件。
[0004]2、无法动态添加或删除节点:当对集群添加或删除节点时,必须将原先集群中的全部节点关闭,并更新所有节点的配置文件,再重新启动所有节点,才能实现向集群添加节点或删除节点的目的。
[0005]3、节点无法定制资源:当某个节点向其它节点获取资源时,必须获取这个节点上的所有资源,并将这些资源全部记录到本节点中,但实际上该节点可能仅需要某种特定类型的资源,这不仅浪费带宽资源,而且浪费存储资源。

【发明内容】

[0006]为了解决上述问题,本发明提供一种多节点间资源交换的方法以及系统,其能够解决上述技术问题。
[0007]本发明实施例提供一种多节点间资源交换的方法,用于一分布式集群,所述分布式集群至少包括第一节点以及第二节点,每个节点所维护的其它节点成员的信息存储在内存中。所述方法包括:侦测分布式集群中是否有新节点加入;侦测各个节点中是否有资源变动;如果分布式集群中有新节点加入或资源变动,则触发第一节点与第二节点之间的资源交换;以及根据第一节点与第二节点的本地资源、所需资源类型以及找到的资源进行资源交换。
[0008]优选的,所述侦测分布式集群中是否有新节点加入的步骤是根据所述节点的申请加入行为或邀请加入行为来进行的,且所述方法还包括:如果分布式集群中无新节点加入,则进一步侦测各个节点中是否有资源变动。。
[0009]优选的,所述方法进一步包括步骤:侦测分布式集群中是否有节点退出集群;如果是,则集群中的其余节点删除本节点上所有属于所述离开集群的节点的资源。
[0010]优选的,所述侦测各个节点中是否有资源变动的步骤是根据集群中有节点退出集群的行为来进行的,且所述侦测分布式集群中是否有节点退出集群的步骤是通过心跳机制来侦测节点退出集群的行为的。
[0011]优选的,所述根据第一节点与第二节点的本地资源以及所需资源类型进行资源交换的步骤包括:第一节点向第二节点请求资源交换,并发送第一节点的节点名以及第一节点的所需资源类型;第一节点接收第二节点的应答信息,所述应答信息包括第二节点的节点名、第二节点的所需资源类型以及在第二节点上找到的第一节点的所需资源;第一节点记录所述在第二节点上找到的第一节点的所需资源,并根据第二节点的所需资源类型在第一节点的本地资源中查找相符的资源;以及第一节点向第二节点发送应答信息,所述应答信息包括第一节点的节点名以及在第一节点上找到的第二节点的所需资源。
[0012]优选的,所述根据第一节点与第二节点的节点名以及所需资源类型进行资源交换的步骤还包括:第二节点接收第一节点的请求信息,并根据第一节点的所需资源类型在第二节点的本地资源中查找相符的资源;第二节点向第一节点发送应答信息,所述应答信息包括第二节点的节点名、第二节点的所需资源类型以及在第二节点上找到的第一节点的所需资源;以及第二节点接收第一节点的应答信息,并将在第一节点上找到的第二节点的所需资源记录到找到的资源中。
[0013]本发明另一实施例提供一种多节点间资源交换的方法,用于一分布式集群,所述分布式集群至少包括第一节点以及第二节点,每个节点所维护的其它节点成员的信息存储在内存中。所述方法包括:新节点加入集群;节点退出集群,使得资源发生变动;根据所述新节点加入所述集群或资源变动的行为,触发第一节点以及第二节点之间的资源交换;以及根据第一节点与第二节点的本地资源、所需资源类型以及找到的资源进行资源交换。
[0014]本发明又一实施例提供一种多节点间资源交换的系统,用于一分布式集群,所述分布式集群包括至少两个节点,且每个节点所维护的其它节点成员的信息存储在内存中。所述多节点间资源交换的系统包括:第一侦测模块,用于侦测分布式集群中是否有新节点加入;第二侦测模块,用于侦测各个节点中是否有资源变动;触发模块,用于根据分布式集群中有新节点加入或资源变动的行为,触发第一节点与第二节点之间的资源交换;以及执行模块,用于根据第一节点与第二节点的本地资源、所需资源类型以及找到的资源进行资源交换。
[0015]优选的,所述第二侦测模块进一步用于侦测分布式集群中是否有节点退出集群,如果是,则集群中的其余节点都删除本节点上所有属于所述离开集群的节点的资源。
[0016]优选的,所述执行模块进一步包括:第一请求单元,用于向第二节点请求资源交换,并发送第一节点的节点名以及第一节点的所需资源类型;第一接收单元,用于接收第一节点的请求信息,并根据第一节点的所需资源类型在第二节点的本地资源中查找相符的资源;第一发送单元,用于向第一节点发送应答信息,所述应答信息包括第二节点的节点名、第二节点的所需资源类型以及在第二节点上找到的第一节点的所需资源;第二接收单元,用于接收第一发送单元发送的应答信息,并记录在第二节点上找到的第一节点的所需资源,并根据第二节点的所需资源类型在第一节点的本地资源中查找相符的资源;第二发送单元,用于向第二节点发送应答信息,所述应答信息包括第一节点的节点名以及在第一节点上找到的第二节点的所需资源;以及记录单元,用于接收第二发送单元发送的应答信息,并将在第一节点上找到的第二节点的所需资源记录到找到的资源中。[0017]在本发明的上述实施例中,当集群中的节点成员需要发生变动时,该多节点间资源交换的方法以及系统无需手动修改所有节点的配置文件,而仅仅由该集群系统自动修改内存记录即可。当对集群添加或删除节点时,也无需将原先集群中的全部节点关闭再重新启动,即可实现向集群添加节点或删除节点的目的。此外,当某个节点向其它节点获取资源时,可根据特定类型的资源进行交换,因此节省了带宽。
【专利附图】

【附图说明】
[0018]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0019]图1为本发明实施例提供的多节点间资源交换的方法的流程图;
图2为应用于图1的多节点间资源交换方法的节点资源数据结构;
图3为两节点资源交换过程示意图;
图4为本发明实施例提供的多节点间资源交换的系统的功能模块图。
【具体实施方式】
[0020]下面结合附图和【具体实施方式】对本发明的技术方案作进一步更详细的描述。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
[0021]请参阅图1,本发明提供的多节点间资源交换的方法用于一分布式集群,所述分布式集群至少包括第一节点以及第二节点。可以理解,第一节点以及第二节点可以分别是至少两个节点,可根据用户的具体需求确定节点的数量。多节点间资源交换的方法包括以下步骤:
步骤SlOl:侦测分布式集群中是否有新节点加入,如果无新节点加入,则侦测分布式集群中是否有节点退出集群。如果有新节点加入,则触发节点间的资源交换。具体的,新节点加入集群的方式可分为申请模式和邀请模式。申请模式是指欲加入集群的节点主动向集群中的任意一节点发送加入集群的请求,集群中的任意一节点在收到该请求后,一对一通知集群中的其它节点有新节点欲加入集群,以及告知其它节点新节点的节点名,最后该任意一节点将集群中现有的节点成员告知欲加入集群的节点,如此,新节点就成功加入了集群。由于每个节点均会记录集群中除本节点以外的所有节点的信息,该信息仅仅指节点的节点名,即ip地址。而邀请模式是指由集群中任意一节点向欲加入集群的节点发送加入集群的邀请,欲加入集群的节点接收邀请,并向发送邀请的节点返回应答,发送邀请的节点在收到应答后,执行加入集群的相应操作。本实施方式中,该相应操作与申请模式中节点收到加入集群请求后的操作相同。不管节点采用哪种模式加入集群,集群中的每个节点都可侦测到新节点加入集群的行为,使每个节点均保持最新的集群成员信息。因此,本步骤能够根据节点的申请加入行为或邀请加入行为来侦测分布式集群中是否有新节点加入。
[0022]步骤S103:侦测分布式集群中是否有节点退出集群,如果有节点退出集群,则执行步骤S105:集群中的其余节点都删除本节点上所有属于所述离开集群的节点的资源。如果没有节点退出集群,则执行步骤S107:保持原节点资源不变。具体的,当集群中的某个节点退出集群时,集群中的其它节点均可依靠心跳机制来检测到该节点退出集群的行为,并更新本节点所持有的集群节点成员的信息,原因是:对于集群中的每个节点来说,都是依靠维持与其它节点的心跳来保持联系,当有节点退出集群,该节点与其它节点间的心跳就消失了,因此可以侦测到该节点退出集群的行为。至于心跳机制的实现方式有多种多样,可以是维持长连接,也可以是定时汇报等等,不以此为限。此外,本步骤可在步骤SlOl之前或之后执行,或者是同步进行。
[0023]由于每个节点找到的资源将以Node-Key-Value的数据结构存储在内存中,当节点侦测到某节点退出集群时,会遍历本节点上所有从其它节点上找到的资源,将其中所有属于该节点的资源(即Node为该节点的节点名的资源)全部删除即可。如此,不管是有新节点加入集群,还是有节点退出集群,都可以使集群中的每个节点保持最新的资源。
[0024]通过对节点加入集群和节点退出集群这两种行为的监测,即可确保集群中的每一个节点均持有正确的集群节点成员信息。而在这过程中,每个节点所维护的其它节点成员的信息是存储在内存中,而非配置文件中,因此不用将所有集群中正常运行的节点停机,来手动修改配置文件,只需要对新节点进行简单的配置,然后启动该节点,即可完成动态添加新节点和移除节点(即新节点加入和节点退出)的操作。
[0025]步骤S109:侦测各个节点中是否有资源变动。本实施例中,此步骤是在确定分布式集群中无新节点加入之后才进行的。更具体的,此步骤是根据集群中有节点退出集群的行为来侦测各个节点中是否有资源变动的,当集群中有节点退出集群时,由于集群中的其余节点都删除本节点上所有属于所述离开集群的节点的资源,因此资源发生了变动,当无节点退出集群时,则认为无资源变动,并返回步骤S103。
[0026]如果分布式集群中有新节点加入或资源变动,则执行步骤Slll:触发第一节点与第二节点之间的资源交换。
[0027]步骤S113:根据第一节点与第二节点的本地资源、所需资源类型以及找到的资源进行资源交换。具体的,请参阅图2,分布式集群中的每个节点在本节点上记录三种信息:本节点拥有的资源、本节点需要的资源类型和从其它节点上找到的本节点所需要的资源(简称找到的资源)。其中,在本实施例中,本节点拥有的资源中记录KeyN-ValueN,表示该节点拥有类型为KeyN的资源,该资源的内容为ValueN ;本节点需要的资源类型中记录KeyN,表示该节点需要从其它节点上获取类型为KeyN的资源;找到的资源中记录NodeX-KeyN-ValueM,表示从节点名为NodeX的节点上找到类型为KeyN的资源,该资源的内容为 ValueM。
[0028]下面就通过详细介绍两节点间的资源交换过程,来了解参与此过程的两个节点的资源交换操作,以更好地理解分布式集群节点间的资源交换。
[0029]请参阅图3,为了便于介绍,将参与资源交换的两节点分别命名为节点I和节点2,图3即表示节点I与节点2进行资源交换的过程。假设当前节点I本地拥有的资源为Keyl-Valuel和Key2_Value2,而节点I需要的资源是类型为Keyl、Key3和Key4的资源;节点2本地所拥有的资源有Key3_Value3和Key4_Value4,而节点2需要的资源类型为Key2和Key5。节点I和节点2当前均未有找到的资源。[0030]本实施例中,假设是节点I向节点2发起资源交换的请求,这个过程包括如下六个步骤:
步骤1:节点I向节点2发送资源交换请求{Nodel,WantRKl},其中Nodel为节点I的节点名,WantRKl为节点I所需要的资源类型,在本实施例中,节点I所需要的资源类型即是 Keyl、Key3 和 Key4。
[0031]步骤2:节点2收到节点I发送的请求信息,并从中获取节点I所需要的资源类型的信息,然后根据此信息,在本节点所拥有的资源中进行查找。在本实施例中,由于节点2上并没有类型为Keyl的资源,所以节点2查找到的符合节点I要求的资源为Key3-ValUe3和 Key4_Value4。
[0032]步骤3:节点2向节点I发送应答信息{Node2,WantRK2, FoundRl},其中Node2为节点2的节点名,WantRK2为节点2所需要的资源类型:Key2和Key5,FoundRl为节点2上找到的节点I所需要的资源,即是Key3_Value3和Key4_Value4。
[0033]步骤4:节点I收到节点2发送的应答信息{Node2,WantRK2, FoundRl}后,先将信息中的FoundRl以NodeX-KeyN-ValueM的形式记录到找到的资源中。本实施例中,以Node2-Key3_Value3和Node2-Key4_Value4的形式进行记录。然后,根据信息中的WantRK2进行与步骤2相同的操作,最后,节点I从本节点拥有的资源中查找出的符合节点2要求的资源为 Key2_Value2。
[0034]步骤5:节点I向节点2发送应答信息{Nodel,FoundR2},其中Nodel为节点I的节点名,FoundR2为节点I上找到的节点2所需要的资源,即是Key2_Value2。
[0035]步骤6:节点2收到节点I发送的应答信息{Node I,FoundR2}后,将信息中的FoundR2以NodeX-KeyN-ValueM的形式记录到找到的资源中。本实施例中,是以Nodel-Key2-Value2的形式进行记录。
[0036]如此,即完成了一次两节点间的资源交换过程。在资源交换的过程中,每个节点上记录的本地拥有的资源与所需要的资源类型的记录是始终不变的,而改变的只有找到的资源的记录。在上面这个例子中,节点I和节点2在完成资源交换后,两个节点中找到的资源的记录均发生了改变,即:节点I为Node2-Key3_Value3和Node2-Key4_Value4,节点2为Nodel-Key2-Value20
[0037]请参阅图4,本发明还提供一种多节点间资源交换的系统100,其用于上述的包括至少两个节点的分布式集群。所述多节点间资源交换的系统100包括第一侦测模块10、第二侦测模块20、触发模块30以及执行模块40。
[0038]第一侦测模块10用于侦测分布式集群中是否有新节点加入。具体的,所述第一侦测模块10根据节点申请加入集群的行为或集群中的节点邀请新节点加入集群中的行为,来侦测分布式集群中是否有新节点加入。
[0039]第二侦测模块20用于侦测各个节点中是否有资源变动。本实施例中,第二侦测模块20还侦测分布式集群中是否有节点退出集群,以根据集群中有节点退出集群的行为来侦测各个节点中是否有资源变动的。即,当集群中有节点退出集群时,由于集群中的其余节点都将删除本节点上所有属于所述离开集群的节点的资源,因此资源发生了变动,当无节点退出集群时,则认为无资源变动。
[0040]触发模块30与第一侦测模块10、第二侦测模块20连接,用于根据分布式集群中有新节点加入或资源变动的行为,触发第一节点与第二节点之间的资源交换。
[0041]执行模块40用于根据第一节点与第二节点的本地资源、所需资源类型以及找到的资源进行资源交换。具体的,请返回参阅图2,分布式集群中的每个节点在本节点上记录三种信息:本节点拥有的资源、本节点需要的资源类型和从其它节点上找到的本节点所需要的资源(简称找到的资源)。其中,在本实施例中,本节点拥有的资源中记录为KeyN-ValueN,表示该节点拥有类型为KeyN的资源,该资源的内容为ValueN ;本节点需要的资源类型中记录为KeyN,表示该节点需要从其它节点上获取类型为KeyN的资源;找到的资源中记录为NodeX-KeyN-ValueM,表示从节点名为NodeX的节点上找到类型为KeyN的资源,该资源的内容为ValueM。
[0042]具体的,执行模块40进一步包括第一请求单元41、第一接收单元42、第一发送单元43、第二接收单元44、第二发送单元45以及记录单元46。第一请求单元41用于向第二节点请求资源交换,并发送第一节点的节点名以及第一节点的所需资源类型。第一接收单元42用于接收第一节点的请求信息,并根据请求信息在第二节点中查找本地资源。第一发送单元43用于向第一节点发送应答信息,所述应答信息包括第二节点的节点名、第二节点的所需资源类型以及在第二节点上找到的第一节点的所需资源类型。第二接收单元44用于接收第一发送单元发送的应答信息,并记录在第二节点上找到的第一节点的所需资源类型,并根据第二节点的所需资源类型在第一节点的本地资源中查找相符的资源。第二发送单元45用于向第二节点发送应答信息,所述应答信息包括第一节点的节点名以及在第一节点上找到的第二节点的所需资源类型。记录单元46用于接收第二发送单元发送的应答信息,并将在第一节点上找到的第二节点的所需资源类型记录到找到的资源中。
[0043]下面就通过详细介绍执行模块40进行资源交换的操作,以更好地理解分布式集群节点间的资源交换。
[0044]请参阅图3,为了便于介绍,将参与资源交换的两节点分别命名为节点I和节点2,图4即表示节点I与节点2进行资源交换的过程。假设当前节点I本地拥有的资源为Keyl-Valuel和Key2_Value2,而节点I需要的资源是类型为Keyl、Key3和Key4的资源;节点2本地所拥有的资源有Key3_Value3和Key4_Value4,而节点2需要的资源类型为Key2和Key5。节点I和节点2当前均未有找到的资源。
[0045]本实施例中,假设是节点I向节点2发起资源交换的请求,这个过程包括如下六个步骤:
步骤1:节点I向节点2发送资源交换请求{Nodel, WantRKl},其中Nodel为节点I的节点名,WantRKl为节点I所需要的资源类型,在本实施例中,节点I所需要的资源类型即是 Keyl、Key3 和 Key4。
[0046]步骤2:节点2收到节点I发送的请求信息,并从中获取节点I所需要的资源类型的信息,然后根据此信息,在本节点所拥有的资源中进行查找。在本实施例中,由于节点2上并没有类型为Keyl的资源,所以节点2查找到的符合节点I要求的资源为Key3-ValUe3和 Key4_Value4。
[0047]步骤3:节点2向节点I发送应答信息{Node2,WantRK2, FoundRl},其中Node2为节点2的节点名,WantRK2为节点2所需要的资源类型:Key2和Key5,FoundRl为节点2上找到的节点I所需要的资源,即是Key3_Value3和Key4_Value4。[0048]步骤4:节点I收到节点2发送的应答信息{Node2,WantRK2, FoundRl}后,先将信息中的FoundRl以NodeX-KeyN-ValueM的形式记录到找到的资源中。本实施例中,以Node2-Key3_Value3和Node2-Key4_Value4的形式进行记录。然后,根据信息中的WantRK2进行与步骤2相同的操作,最后,节点I从本节点拥有的资源中查找出的符合节点2要求的资源为 Key2_Value2。
[0049]步骤5:节点I向节点2发送应答信息{Nodel, FoundR2},其中Nodel为节点I的节点名,FoundR2为节点I上找到的节点2所需要的资源,即是Key2_Value2。
[0050]步骤6:节点2收到节点I发送的应答信息{Node I,FoundR2}后,将信息中的FoundR2以NodeX-KeyN-ValueM的形式记录到找到的资源中。本实施例中,是以Nodel-Key2-Value2的形式进行记录。
[0051]如此,即完成了一次两节点间的资源交换过程。在资源交换的过程中,每个节点上记录的本地拥有的资源与所需要的资源类型的记录是始终不变的,而改变的只有找到的资源的记录。在上面这个例子中,节点I和节点2在完成资源交换后,两个节点中找到的资源的记录均发生了改变,即:节点I为Node2-Key3_Value3和Node2-Key4_Value4,节点2为Nodel-Key2-Value20
[0052]可以理解,集群节点间的资源交换是由多次两节点间的资源交换所组成的,当某节点发起集群节点间资源交换的请求时,该节点需要依次与除本节点以外的所有节点均进行一次两节点间的资源交换,至到与最后一个节点完成资源交换为止。另外,值得一提的是,对于某个节点来说,其它不同节点上所拥有的相同资源(即类型相同,内容也相同的资源),也均属于不同的资源。所以,即使某节点已经从某个节点上获取到了所有所需要类型的资源,但它仍然需要与其余节点进行资源交换,只有这样才能保证该节点能够获取到集群中所有它所需要的资源。
[0053]当集群中的节点成员需要发生变动时,本发明的多节点间资源交换的方法以及系统无需手动修改所有节点的配置文件,而仅仅由该集群系统自动修改内存记录即可。而当对集群添加或删除节点时,也无需将原先集群中的全部节点关闭再重新启动,即可实现向集群添加节点或删除节点的目的。此外,当某个节点向其它节点获取资源时,可根据特定类型的资源进行交换,因此节省了带宽。
[0054]需要说明的是,通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的硬件平台的方式来实现,当然也可以全部通过硬件来实施。基于这样的理解,本发明的技术方案对【背景技术】做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如R0M/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
[0055]以上所揭露的仅为本发明实施例中的较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
【权利要求】
1.一种多节点间资源交换的方法,用于一分布式集群,所述分布式集群至少包括第一节点以及第二节点,其特征在于,每个节点所维护的其它节点成员的信息存储在内存中,所述方法包括: 侦测分布式集群中是否有新节点加入; 侦测各个节点中是否有资源变动; 如果分布式集群中有新节点加入或资源变动,则触发第一节点与第二节点之间的资源交换;以及 根据第一节点与第二节点的本地资源、所需资源类型以及找到的资源进行资源交换。
2.如权利要求1所述的多节点间资源交换的方法,其特征在于,所述侦测分布式集群中是否有新节点加入的步骤是根据所述节点的申请加入行为或邀请加入行为来进行的,且所述方法还包括:如果分布式集群中无新节点加入,则进一步侦测各个节点中是否有资源变动。
3.如权利要求1所述的多节点间资源交换的方法,其特征在于,进一步包括步骤: 侦测分布式集群中是否有节点退出集群; 如果是,则集群中的其余节点删除本节点上所有属于所述离开集群的节点的资源。
4.如权利要求3所述的多节点间资源交换的方法,其特征在于,所述侦测各个节点中是否有资源变动的步骤是根 据集群中有节点退出集群的行为来进行的,且所述侦测分布式集群中是否有节点退出集群的步骤是通过心跳机制来侦测节点退出集群的行为的。
5.如权利要求1所述的多节点间资源交换的方法,其特征在于,所述根据第一节点与第二节点的本地资源以及所需资源类型进行资源交换的步骤包括: 第一节点向第二节点请求资源交换,并发送第一节点的节点名以及第一节点的所需资源类型; 第一节点接收第二节点的应答信息,所述应答信息包括第二节点的节点名、第二节点的所需资源类型以及在第二节点上找到的第一节点的所需资源; 第一节点记录所述在第二节点上找到的第一节点的所需资源,并根据第二节点的所需资源类型在第一节点的本地资源中查找相符的资源;以及 第一节点向第二节点发送应答信息,所述应答信息包括第一节点的节点名以及在第一节点上找到的第二节点的所需资源。
6.如权利要求5所述的多节点间资源交换的方法,其特征在于,所述根据第一节点与第二节点的节点名以及所需资源类型进行资源交换的步骤还包括: 第二节点接收第一节点的请求信息,并根据第一节点的所需资源类型在第二节点的本地资源中查找相符的资源; 第二节点向第一节点发送应答信息,所述应答信息包括第二节点的节点名、第二节点的所需资源类型以及在第二节点上找到的第一节点的所需资源;以及 第二节点接收第一节点的应答信息,并将在第一节点上找到的第二节点的所需资源记录到找到的资源中。
7.一种多节点间资源交换的方法,用于一分布式集群,所述分布式集群至少包括第一节点以及第二节点,其特征在于,每个节点所维护的其它节点成员的信息存储在内存中,所述方法包括:新节点加入集群; 节点退出集群,使得资源发生变动; 根据所述新节点加入所述集群或资源变动的行为,触发第一节点以及第二节点之间的资源交换;以及 根据第一节点与第二节点的本地资源、所需资源类型以及找到的资源进行资源交换。
8.一种多节点间资源交换的系统,用于一分布式集群,所述分布式集群包括至少两个节点,其特征在于,每个节点所维护的其它节点成员的信息存储在内存中,所述多节点间资源交换的系统包括: 第一侦测模块,用于侦测分布式集群中是否有新节点加入; 第二侦测模块,用于侦测各个节点中是否有资源变动; 触发模块,用于根据分布式集群中有新节点加入或资源变动的行为,触发第一节点与第二节点之间的资源交换;以及 执行模块,用于根据第一节点与第二节点的本地资源、所需资源类型以及找到的资源进行资源交换。
9.如权利要求8所述的多节点间资源交换的系统,其特征在于,所述第二侦测模块进一步用于侦测分布式集群中是否有节点退出集群,如果是,则集群中的其余节点都删除本节点上所有属于所述离开集群的节点的资源。
10.如权利要求8所述的多节点间资源交换的系统,其特征在于,所述执行模块进一步包括: 第一请求单元,用于向第二节点请求资源交换,并发送第一节点的节点名以及第一节点的所需资源类型; 第一接收单元,用于接收第一节点的请求信息,并根据第一节点的所需资源类型在第二节点的本地资源中查找相符的资源; 第一发送单元,用于向第一节点发送应答信息,所述应答信息包括第二节点的节点名、第二节点的所需资源类型以及在第二节点上找到的第一节点的所需资源; 第二接收单元,用于接收第一发送单元发送的应答信息,并记录在第二节点上找到的第一节点的所需资源,并根据第二节点的所需资源类型在第一节点的本地资源中查找相符的资源; 第二发送单元,用于向第二节点发送应答信息,所述应答信息包括第一节点的节点名以及在第一节点上找到的第二节点的所需资源;以及 记录单元,用于接收第二发送单元发送的应答信息,并将在第一节点上找到的第二节点的所需资源记录到找到的资源中。
【文档编号】H04L29/08GK103618798SQ201310640996
【公开日】2014年3月5日 申请日期:2013年12月4日 优先权日:2013年12月4日
【发明者】陈彬, 倪涛, 郭家栋 申请人:中安消技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1