一种集群节点通信方法及系统与流程

文档序号:11411037阅读:389来源:国知局
一种集群节点通信方法及系统与流程

本申请涉及集群技术领域,特别涉及一种集群节点通信方法及系统。



背景技术:

随着计算机系统技术的飞速发展,高性能计算所采用的硬件设备经历了从向量计算机到并行计算机再到集群系统的过度。如今,集群系统(以下简称集群)已经在高性能计算中得到越来越广泛的应用。

集群是指一组相互独立的、通过高速网络互联的计算机等服务实体,它们作为一个单一系统对外提供服务。集群中的每个服务实体都是一个节点,并且在一个集群中,一般有一个主节点,其余为从节点。从节点可以存储数据;主节点可以与各个从节点进行通信,进而可以调用从节点存储的数据。

现有技术中,一个集群中的主节点不仅可以与本集群中的从节点进行通信,还可以与局域网内其他集群中的从节点进行通信。在具体实现时,从节点一般安装有agent模块,可以调用底层服务;而主节点安装有中间件模块,中间件模块通过agent模块可以与各个集群中的从节点进行通信。由于各个从节点的agent模块需要响应来自不同集群的主节点的指令,因此,一旦集群中某一个或者多个从节点故障,则每个主节点与故障节点的通信都将受到影响,因而各个主节点需要定时请求故障节点;而主节点与故障节点间的通信时间要远远大于与正常节点的通信时间,因此,整个系统的请求响应速度降低。并且,局域网内的集群数量越多,该情况就越严重。

请参考图1,图1为现有技术中的集群节点通信方法的示意图。

图1中以两个集群为例,展示了现有技术中的集群节点通信方法,如图1所示,每个集群中均设置了1个主节点和多个从节点。其中,集群101中的主节点1011除了可以访问集群101中的从节点以外,还可以与集群102中的从节点1022、从节点1023、从节点1024等直接进行通信;类似地,集群102中的主节点1021除了可以访问集群102中的从节点以外,还可以与集群101中的从节点1012、从节点1013、从节点1014等直接进行通信。当从节点1012发生故障时,不仅主节点1011与其的通信受到影响,主节点1021与其的通信也同样受到影响。由于故障从节点与主节点间的通信时间较长,因此降低了整个系统的请求响应速度。



技术实现要素:

本申请的目的在于提供一种集群节点通信方法及系统,以便在集群节点发生故障时可以有效地避免系统的请求响应速度的下降。

为解决上述技术问题,本申请提供一种集群节点通信方法,包括:

第一主节点获取第一集群中各个从节点的数据,并将所述数据缓存;所述第一主节点位于第一集群中;

所述第一主节点接收第二主节点发送的对所述第一集群中从节点的数据的调用请求;所述第二主节点位于第二集群中;

所述第一主节点从缓存中获取所述第二主节点请求的待调用数据,并返回给所述第二主节点。

可选地,所述第一主节点获取第一集群中各个从节点的数据,并将所述数据缓存包括:

所述第一主节点的第一中间件模块向所述第一集群中各个从节点的agent模块请求数据;

各个所述agent模块响应于所述第一中间件模块的请求,将所述各个从节点的数据返回给所述第一中间件模块;

所述第一中间件模块将所述数据缓存。

可选地,所述第一主节点获取第一集群中各个从节点的数据,并将所述数据缓存包括:

第一主节点定时获取第一集群中各个从节点的数据,并将所述数据缓存,以便进行数据更新。

可选地,其特征在于,还包括:

当所述第一集群中的从节点故障时,所述第一主节点将所述故障从节点的故障信息缓存,并在接收到所述第二主节点发送的对所述故障从节点的数据的调用请求后,向所述第二主节点发送所述故障信息。

可选地,还包括:

当所述故障从节点恢复时,所述第一主节点将所述故障信息清除。

本申请还提供了一种集群节点通信系统,包括多个集群,各个所述集群中包括一个主节点和多个从节点;

第一集群中的第一主节点用于:

获取并缓存所述第一集群中各个从节点的数据;并在接收到第二集群中的第二主节点发送的对所述第一集群中从节点的数据的调用请求后,从缓存中获取所述第二主节点请求的待调用数据,返回给所述第二主节点。

可选地,所述第一主节点部署有第一中间件模块,所述第一中间件模块具体用于:

向所述第一集群中的各个从节点的agent模块请求数据;

各个所述agent模块具体用于:

响应于所述第一中间件模块的请求,将所述各个从节点的数据返回给所述第一中间件模块。

可选地,所述第一主节点具体用于:

定时获取所述第一集群中各个从节点的数据,以便进行数据更新。

可选地,其特征在于,所述第一主节点还用于:

当所述第一集群中的从节点故障时,将所述故障从节点的故障信息缓存,并在接收到所述第二主节点发送的对所述故障从节点的数据的调用请求时,向所述第二主节点发送所述故障信息。

可选地,所述第一主节点还用于:

当所述故障从节点恢复时,将所述故障信息清除。

本申请所提供的集群节点通信方法中,第一主节点获取第一集群中各个从节点的数据,并将所述数据缓存;所述第一主节点位于第一集群中;所述第一主节点接收第二主节点发送的对所述第一集群中从节点的数据的调用请求;所述第二主节点位于第二集群中;所述第一主节点从缓存中获取所述第二主节点请求的待调用数据,并返回给所述第二主节点。

可见,相比于现有技术,本申请所提供的集群节点通信方法中,利用主节点对本集群内从节点数据的缓存,使得其他集群内的主节点可以通过访问该主节点而获取该主节点所在集群内从节点的数据,由此可以避免故障从节点与其他集群的主节点间的直接通信,提高了集群间的访问效率,因而可以省却故障从节点响应于其他集群的主节点的通信时间,避免了系统请求响应速度的下降。本申请所提供的集群节点通信系统可以实现上述集群节点通信方法,同样具有上述有益效果。

附图说明

为了更清楚地说明现有技术和本申请实施例中的技术方案,下面将对现有技术和本申请实施例描述中需要使用的附图作简要的介绍。当然,下面有关本申请实施例的附图描述的仅仅是本申请中的一部分实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图,所获得的其他附图也属于本申请的保护范围。

图1为现有技术中的集群节点通信方法的示意图;

图2为本申请实施例所提供的集群节点通信方法的流程图;

图3为本申请实施例所提供的集群节点通信系统的示意图。

具体实施方式

为了对本申请实施例中的技术方案进行更加清楚、完整地描述,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行介绍。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

请参考图2,图2为本申请实施例所提供的一种集群节点通信方法的流程图,主要包括以下步骤:

步骤201:第一主节点获取第一集群中各个从节点的数据。

一个集群中的主节点可以对该集群内的所有从节点进行数据调用和管理。对于系统中的任何一个集群来说,不妨称其为第一集群,其主节点,即所述第一主节点,需要调用第一集群中各个从节点的数据,对第一集群中各个从节点进行管理,以便作为一个整体统一对外提供服务。

具体地,每个集群的主节点上可以部署有中间件模块,而每个集群中的各个从节点上可以部署有agent模块,利用中间件模块和agent模块,主节点和各个从节点可以完成数据传输,即将各个从节点的数据汇总到集群的主节点中。

对于第一集群来说,其中的第一主节点上部署有第一中间件模块,第一中间件模块向第一集群中各个从节点的agent模块请求数据;位于各个从节点上的各个agent模块便响应于第一中间件模块的请求,分别将各自所在的从节点的数据返回给第一中间件模块。

步骤202:第一主节点将所述数据缓存。

由于系统中不同的集群间也需要互访和数据调用,因此,第一集群中从节点的数据不仅用于第一主节点的调用,还用于其他集群中主节点的调用。为了避免第一集群中的各个从节点与其他集群中的主节点的直接通信,以防止节点故障时系统响应速度的降低,因此,可以充分利用第一主节点在步骤201中所获取到的第一集群中各个从节点的数据,即将该过程中所获取的数据不仅用于第一主节点的调用,还用于其他集群中主节点的调用。为了在其他集群中的主节点提出数据调用申请时可以向其提供待调用数据,第一主节点可以将其在步骤201中所获取到的第一集群中各个从节点的数据进行缓存,以待其他集群中的主节点的调用。

值得一提的是,在上述步骤201和步骤202中,第一主节点可以定时执行获取和缓存第一集群中各个从节点数据的操作,以便及时对各个从节点的数据进行更新,保证系统数据的准确性。

需要注意的是,若第一集群中的某个或者多个从节点故障,则此时第一主节点还可以将该故障从节点的故障信息缓存,以作为标记;并且当所述故障从节点恢复时,第一主节点可以将其之前所缓存的该故障信息进行清除。

步骤203:第一主节点接收第二主节点发送的对第一集群中从节点的数据的调用请求。

如前所述,本申请实施例中各个集群的主节点不再采用与其他集群中的从节点直接进行通信的数据调用方式,而是采用调用集群中主节点所缓存的从节点的数据的方式。因此,当集群的主节点需要调用其他集群中的从节点的数据时,其只需要向被调用从节点所在集群的主节点发送调用请求即可。

当第一集群中从节点的数据需要被其他集群(不妨称为第二集群)中的主节点(不妨称为第二主节点)调用时,第一主节点便可以接收到第二主节点发送的对第一集群中从节点的数据的调用请求。

步骤204:第一主节点从缓存中获取第二主节点请求的待调用数据,并返回给第二主节点。

第一主节点响应于其所接收到的来自于第二主节点的数据调用请求,从缓存中获取第二主节点所请求的待调用数据,并将其返回给第二主节点,以便第二主节点完成对该待调用数据的使用。

与前文相对应地,若第一主节点所接收到的调用请求针对的是第一集群中故障从节点的数据,则第一主节点可以向数据调用方即第二主节点发送该故障从节点的故障信息。

可见,本申请实施例所提供的集群节点通信方法中,其他集群中的主节点可以通过访问本集群中主节点的缓存数据,来获取本集群中从节点的数据,即,一个集群中的从节点只需响应本集群中主节点的数据请求,而无需与其他集群中的主节点进行通信。由此,当集群中的某个或者多个从节点故障时,只会影响到故障节点与本集群中主节点的通信,而其他集群中主节点因无需与故障节点直接进行通信而不会受到影响,因此,整个系统的请求响应速度就可以避免降低。尤其是当系统内的集群数量较多时,该有益效果将更加明显。

此外,由于本申请所提供的集群节点通信方法中,集群从节点无需响应其他集群中主节点的访问,降低了集群间的耦合性,因此集群中从节点的负载大大减小,因而也大大降低了集群系统的网络开销;同时,由于集群内内聚性的提高,系统的稳定性和可靠性也得到了保证。

下面对本申请实施例所提供的集群节点通信系统进行介绍。下文描述的集群节点通信系统与上文描述的集群节点通信方法可相互对应参照。

请参阅图3,图3以两个集群为例,展示了本申请所提供的一种集群节点通信系统的示意图;包括集群301、集群302,其中集群301包括主节点3011和从节点3012,集群302包括主节点3021和从节点3022。

以集群301为例,其主节点3011用于获取并缓存集群301中各个从节点3012的数据;并在接收到集群302中的主节点3021发送的对从节点3012的数据的调用请求后,从缓存中获取主节点3021请求的待调用数据,并返回给主节点3021。

具体地,主节点3011中可以部署第一中间件模块,而从节点3012中可以部署agent模块;主节点3011通过其第一中间件模块向集群301中的各个从节点3012的agent模块请求数据;各个从节点3012的agent模块响应于第一中间件模块的请求,分别将各个从节点3012的数据返回给第一中间件模块。

如前所述,主节点3011在获取和缓存集群301中各个从节点3012的数据时,可以以定时的方式执行,以便进行数据更新,保证系统数据的准确性。

需要注意的是,当集群301中的某个或者多个从节点3012故障时,主节点3011还可以用于将该故障从节点的故障信息缓存,并在接收到主节点3021发送的对该故障从节点的数据的调用请求时,向主节点3021发送该故障从节点的故障信息。而当该故障从节点恢复时,主节点3011还可以用于将该故障从节点的故障信息清除。

容易理解的是,以上对本申请实施例所提供的集群节点通信系统的介绍主要是以集群301为例进行的一般性介绍,通过类比,本领域技术人员可以得到本申请的集群节点通信系统中的其他集群(包括集群302等)和集群301相同的功能结构及其实现方式,类似的内容这里就不再赘述。

可见,本申请所提供的集群节点通信系统,利用主节点对本集群内从节点数据的缓存,使得其他集群内的主节点可以通过访问该主节点而获取本集群内从节点的数据。由于本申请避免了本集群从节点与其他集群的主节点间的直接通信,提高了集群间的访问效率,因而可以在从节点故障时省却该故障从节点与其他集群中主节点的通信时间,从而避免了系统请求响应速度的下降。

此外,由于本申请所提供的集群节点通信系统中,集群从节点的负载大大减小,因此集群系统的网络开销也得到大大降低;同时,由于集群内内聚性的提高,本申请所提供的集群节点通信系统还可以进一步提高系统的稳定性和可靠性。

本申请中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上对本申请所提供的技术方案进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

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