一种在分布式集群系统中传播节点状态信息的方法及系统.pdf

上传人:00062****4422 文档编号:4333607 上传时间:2018-09-14 格式:PDF 页数:18 大小:2.33MB
返回 下载 相关 举报
摘要
申请专利号:

CN201280000590.7

申请日:

2012.02.06

公开号:

CN102845036A

公开日:

2012.12.26

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):H04L 12/56申请日:20120206|||公开

IPC分类号:

H04L12/56

主分类号:

H04L12/56

申请人:

华为技术有限公司

发明人:

宁德刚; 王道辉; 杨德平

地址:

518129 广东省深圳市龙岗区坂田华为总部办公楼

优先权:

专利代理机构:

代理人:

PDF下载: PDF下载
内容摘要

本发明涉及信息技术领域,尤其涉及一种在分布式集群系统中传播节点状态信息的方法及装置。本发明实施例提供的一种在分布式集群系统中传播节点状态的方法,其中,所述分布式集群系统包括至少两层,上层与相邻下层之间存在公共节点,所述上层由与所述相邻下层的公共节点组成,每层包括至少一个组,下层每组包括至少一个与相邻上层的公共节点,当第一节点加入所述分布式集群系统时,通过分布式集群系统中的公共节点将所述第一节点的第一节点加入信息传播至所述分布式集群系统中的每一个节点。通过本发明实施例提供的方法,降低了节点状态信息被路由的次数,从而减少了节点状态信息传播到分布式集群系统中每一个节点的时间。

权利要求书

1.一种在分布式集群系统中传播节点状态信息的方法,其特征在于,所述分布式集群系统包括至少两层,上层与相邻下层之间存在公共节点,所述上层由与所述相邻下层的公共节点组成,每层包括至少一个组,下层每组包括至少一个与相邻上层的公共节点,所述方法包括:当第一节点加入所述分布式集群系统时,所述第一节点向所加入的最下层的组中所有节点发送第一节点加入信息,所述第一节点加入信息包括所述第一节点的节点标识;所述第一节点所加入的最下层的组的公共节点接收到所述第一节点加入信息后,向所述公共节点所在的上一层的组中所有节点发送所述第一节点加入信息,以使得其它的公共节点将所述第一节点加入信息传递至所述分布式集群系统中的所有节点。2.如权利要求1所述的方法,其特征在于,所述第一节点所加入的最下层的组的公共节点接收到所述第一节点加入信息后,向所述公共节点所在的上一层的组中所有节点发送所述第一节点加入信息,以使得其它的公共节点将所述第一节点加入信息传递至所述分布式集群系统中的所有节点,包括:所述第一节点所加入的最下层的组的公共节点接收到所述第一节点加入信息后,向所述公共节点所在的上一层的组中所有节点发送所述第一节点加入信息,若所述公共节点所在的所述上一层不是最上层,则所述公共节点所在的所述上一层的组中所有节点继续向上转发所述第一节点加入信息,直至所述第一节点加入信息被传递至最上层中的所有节点;接收到所述第一节点加入信息的最上层的节点向其所在的下一层的组中所有节点发送所述第一节点加入信息,若所述最上层的节点所在的下一层不是最下层,则所述最上层的节点所在的下一层的组中所有节点继续向下转发所述第一节点加入信息,直至所述第一节点加入信息被传递至最下层中的所有节点。3.如权利要求1或2所述的方法,其特征在于,还包括:在所述第一节点中预先配置所加入的最下层的组的组播地址;则所述第一节点向所加入的最下层的组中所有节点发送第一节点加入信息,包括:所述第一节点根据所加入的最下层的组的组播地址,采用组播的方式向所加入的最下层的组中所有节点发送所述第一节点加入信息。4.如权利要求3所述的方法,其特征在于,还包括:在所述分布式集群系统的公共节点中预先配置所述公共节点所在组的组播地址;则所述第一节点所加入的最下层的组的公共节点向所述公共节点所在的上一层的组中所有节点发送所述第一节点加入信息,包括:所述第一节点所加入的最下层的组的公共节点根据其所在的上一层的组的组播地址,采用组播的方式向所述公共节点所在的所述上一层的组中所有节点发送所述第一节点加入信息。5.如权利要求1至4中任一权利要求所述的方法,其特征在于,还包括:接收到所述第一节点加入信息的节点在自身保存的集群成员列表中增加所述第一节点的节点标识。6.如权利要求5所述的方法,其特征在于,还包括:若所述接收到所述第一节点加入信息的节点与所述第一节点在同一组中,所述接收到所述第一节点加入信息的节点在所述同一组的成员列表中增加所述第一节点的节点标识。7.如权利要求6所述的方法,其特征在于,所述接收到所述第一节点加入信息的节点在所述同一组的成员列表中增加所述第一节点的节点标识之后,还包括:所述接收到所述第一节点加入信息的节点将自身保存的所述同一组的成员列表以及所述集群成员列表发送至所述第一节点。8.如权利要求1至7中任一权利要求所述的方法,其特征在于,还包括:当所述第一节点退出所述分布式集群系统时,检测到所述第一节点退出所述分布式集群系统的节点向自身所在组中所有节点发送第一节点退出信息,所述第一节点退出信息包括所述第一节点的节点标识,直至所述第一节点加入信息被传递至最上层中所有节点;接收到所述第一节点退出信息的最上层的节点向其所在的下一层的组中所有节点发送所述第一节点退出信息,若所述最上层的节点所在的下一层不是最下层,则所述最上层的节点所在的下一层的组中所有节点继续向下转发所述第一节点退出信息,直至所述第一节点退出信息被传递至最下层中的所有节点。9.如权利要求8所述的方法,其特征在于,所述检测到所述第一节点退出所述分布式集群系统的节点向自身所在组中所有节点发送第一节点退出信息,直至所述第一节点加入信息被传递至最上层中所有节点,包括:若所述检测到所述第一节点退出所述分布式集群系统的节点位于所述最上层,则所述检测到所述第一节点退出的节点向自身所在的所述最上层中所有节点发送所述第一节点退出信息;或者,若所述检测到所述第一节点退出所述分布式集群系统的节点不位于所述最上层,则所述检测到所述第一节点退出的节点向其所在的上一层的组中所有节点发送所述第一节点退出信息,直至所述第一节点退出信息被传递至所述最上层中所有节点。10.如权利要求8或9所述的方法,其特征在于,还包括:接收到所述第一节点退出信息的节点在自身保存的集群成员列表中删除所述第一节点的节点标识。11.如权利要求10所述的方法,其特征在于,还包括:若接收到所述第一节点退出信息的节点与所述第一节点在同一组中,所述接收到所述第一节点退出信息的节点在所述同一组的成员列表中删除所述第一节点的节点标识。12.如权利要求6或11所述的方法,其特征在于,还包括:在所述分布式集群系统的每个节点中预先保存所述集群成员列表,以及自身所在的每个组的成员列表。13.如权利要求6或11所述的方法,其特征在于,还包括:所述分布式集群系统中的第二节点对所在组的成员列表中的节点标识进行排序,根据排序的结果确定自身是否需要加入或退出所述其所在组的上一层;若所述第二节点确定需要加入所述其所在组的上一层,则所述第二节点向所加入的所述上一层的组中所有节点发送第二节点加入信息,所述第二节点加入信息包括所述第二节点的节点标识;或者,若所述第二节点确定需要退出所述其所在组的上一层,则所述第二节点向所退出的所述上一层的组中所有节点发送第二节点退出信息,所述第二节点退出信息包括所述第二节点的节点标识。14.如权利要求13所述的方法,其特征在于,所述第二节点向其所加入的所述上一层的组中所有节点发送所述第二节点加入信息,包括:所述第二节点根据所加入的所述上一层的组的组播地址,采用组播的方式向所加入的所述上一层的组中所有节点发送所述第二节点加入信息。15.如权利要求13所述的方法,其特征在于,所述第二节点向所退出的所述上一层的组中所有节点发送所述第二节点退出信息,包括:所述第二节点根据所退出的所述上一层的组的组播地址,采用组播的方式向所述上一层的组中所有节点发送所述第二节点退出信息。16.如权利要求13或14所述的方法,其特征在于,还包括:若所述第二节点确定需要加入所述其所在组的上一层,则接收到所述第二节点加入信息的节点在其所在的所述上一层的组的成员列表中增加所述第二节点的节点标识。17.如权利要求16所述的方法,其特征在于,还包括:所述接收到所述第二节点加入信息的节点将增加后的所述上一层的组的成员列表发送到所述第二节点。18.如权利要求13或15所述的方法,其特征在于,还包括:若所述第二节点确定需要退出所述其所在组的上一层,则接收到所述第二节点退出信息的节点在其所在的所述上一层的组的成员列表中删除所述第二节点的节点标识。19.一种分布式集群系统,其特征在于,包括至少两层,上层与相邻下层之间存在公共节点,所述上层由与所述相邻下层的公共节点组成,每层包括至少一个组,下层每组包括至少一个与相邻上层的公共节点,其中,当第一节点加入所述分布式集群系统时,所述第一节点用于向所加入的最下层的组中所有节点发送第一节点加入信息,所述第一节点加入信息包括所述第一节点的节点标识;所述第一节点所加入的最下层的组的公共节点用于接收所述第一节点加入信息,并向所述公共节点所在的上一层的组中所有节点发送所述第一节点加入信息,以使得其它的公共节点将所述第一节点加入信息传递至所述分布式集群系统中的所有节点。20.如权利要求19所述的系统,其特征在于:当所述第一节点退出所述分布式集群系统时,检测到所述第一节点退出所述分布式集群系统的节点用于向自身所在组中所有节点发送第一节点退出信息,所述第一节点退出信息包括所述第一节点的节点标识,直至所述第一节点加入信息被传递至最上层中所有节点;接收到所述第一节点退出信息的最上层的节点用于向其所在的下一层的组中所有节点发送所述第一节点退出信息,若所述最上层的节点所在的下一层不是最下层,则所述最上层的节点所在的下一层的组中所有节点继续向下转发所述第一节点退出信息,直至所述第一节点退出信息被传递至最下层中的所有节点。

说明书

一种在分布式集群系统中传播节点状态信息的方法及系统

技术领域

本发明涉及信息技术(Information Technology,简称:IT)领域,尤其涉
及一种在分布式集群系统中传播节点状态信息的方法及系统。

背景技术

现有的分布式集群系统由节点组成,节点之间通过网络进行互联,每个节
点都保存有集群成员信息,每个节点从分布式集群系统中随机选择M(M≥1)
个节点维持心跳。当集群的规模不能满足应用需求时,需向分布式集群系统添
加新的节点,以便增加分布式集群系统的处理能力;当分布式集群系统中的节
点发生故障时,发生故障的节点会退出分布式集群系统。在节点加入或退出分
布式集群系统时,分布式集群系统的成员将发生改变。

为了在节点加入分布式集群系统时,能够快速地将新加入节点的信息传播
到分布式集群系统的每个节点,新加入节点将节点加入信息发送到该分布式集
群系统中的一个节点,接收到该节点加入信息的节点向与自身建立心跳的节点
发送该节点加入信息,以便将该节点加入信息传播到分布式集群系统的每一个
节点。当有节点退出分布式集群系统时,与退出节点建立心跳的节点检测到该
退出节点退出分布式集群系统,并向建立心跳的其他节点发送节点退出信息,
接收到该节点退出信息的节点向与自身建立心跳的节点发送该节点退出信息,
以便将该节点退出信息传播到分布式集群系统的每一个节点。其中,该节点加
入信息以及节点退出信息统称为节点状态信息。

通过对现有技术的分析,发明人认为现有技术至少存在以下问题:

当节点加入或退出分布式集群系统时,节点状态信息通过建立心跳的节点
扩散,分布式集群系统中每一个节点均接收到节点状态信息所需的时间与分布
式集群系统中节点的数目呈对数关系。当分布式集群中节点规模较大时,需要
经历很长的时间才能将该节点状态信息传播到分布式集群系统中的每一个节
点。

发明内容

本发明实施例的目的在于提供一种在分布式集群系统中传播节点状态信息
的方法及装置,以便于减少节点状态信息传播到分布式集群系统中每一个节点
的时间。

一方面,本发明实施例提供一种在分布式集群系统中传播节点状态信息的
方法,所述分布式集群系统包括至少两层,上层与相邻下层之间存在公共节点,
所述上层由与所述相邻下层的公共节点组成,每层包括至少一个组,下层每组
包括至少一个与相邻上层的公共节点,所述方法包括:

当第一节点加入所述分布式集群系统时,所述第一节点向所加入的最下层
的组中所有节点发送第一节点加入信息,所述第一节点加入信息包括所述第一
节点的节点标识;

所述第一节点所加入的最下层的组的公共节点接收到所述第一节点加入信
息后,向所述公共节点所在的上一层的组中所有节点发送所述第一节点加入信
息,以使得其它的公共节点将所述第一节点加入信息传递至所述分布式集群系
统中的所有节点。

另一方面,本发明实施例提供一种分布式集群系统,包括至少两层,上层
与相邻下层之间存在公共节点,所述上层由与所述相邻下层的公共节点组成,
每层包括至少一个组,下层每组包括至少一个与相邻上层的公共节点,其中,

当第一节点加入所述分布式集群系统时,所述第一节点用于向所加入的最
下层的组中所有节点发送第一节点加入信息,所述第一节点加入信息包括所述
第一节点的节点标识;

所述第一节点所加入的最下层的组的公共节点用于接收所述第一节点加入
信息,并向所述公共节点所在的上一层的组中所有节点发送所述第一节点加入
信息,以使得其它的公共节点将所述第一节点加入信息传递至所述分布式集群
系统中的所有节点。

本发明实施例提供的一种在分布式集群系统中传播节点状态信息的方法及
装置,通过采用多层次的网络结构,将节点状态信息的传播范围约束在不同的
组内,降低了节点状态信息路由的次数,从而减少了节点状态信息传播到分布
式集群系统中每一个节点的时间。

附图说明

图1为本发明实施例提供的一种分布式集群系统架构示意图;

图2为本发明实施例提供的另一种分布式集群系统架构示意图;

图3为本发明实施例提供的一种在分布式集群系统中传播节点状态信息的
方法示意图;

图4为本发明实施例提供的另一种在分布式集群系统中传播节点状态信息
的方法示意图;

图5为本发明实施例提供的一种分布式集群系统示意图。

具体实施方式

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

如图1所示,为本发明实施例提供的一种分布式集群系统架构示意图。其
中,该系统包括两层,分别为最上层和最下层,最上层称为顶层,最下层称为
底层,顶层与底层之间存在公共节点,顶层由与底层的公共节点组成,即顶层
中的节点是底层中节点的子集,每层包括至少一个组,底层每组包括至少一个
与顶层的公共节点,即底层每个组选择至少一个节点作为与顶层的公共节点。

如图2所示,为本发明实施例提供的另一种分布式集群系统架构示意图。
其中,该系统包括三层,最上层称为顶层,最下层称为底层,顶层与底层之间
有一个中间层,上层与相邻下层之间存在公共节点,所述上层由与所述相邻下
层的公共节点组成,即上层中的节点是相邻下层中节点的子集,每层包括至少
一个组,下层每组包括至少一个与相邻上层的公共节点,即下层每组选择至少
一个节点作为与相邻上层的公共节点。

其中,需要说明的是,本发明实施例并不限定分布式集群系统的层数,所
述分布式集群系统可以包括至少两层,最上层称为顶层,最下层称为底层,顶
层与底层之间可以有至少零个中间层,上层与相邻下层之间存在公共节点,所
述上层由与所述相邻下层的公共节点组成,每层包括至少一个组,下层每组包
括至少一个与相邻上层的公共节点,即下层每个组选择至少一个节点作为与相
邻上层的公共节点。

其中,需要说明的是,最上层一般仅包括一个组。

其中,需要说明的是,并发明实施例并不限定所述分布式集群系统中节点
的类型,作为示例而非限定,所述分布式集群系统中的节点可以是各种PC机、
上网本、服务器、智能手机。

基于图1或图2所示的系统架构示意图,本发明实施例提供一种在分布式
集群系统中传播节点状态信息的方法。如图3所示,该方法包括:

S301:当有第一节点加入所述分布式集群系统时,所述第一节点向所加入
的最下层的组中所有节点发送第一节点加入信息,所述第一节点加入信息包括
所述第一节点的节点标识;

例如,若所述第一节点加入最下层中的第一组,即底层第一组,则所述第
一节点向底层第一组中所有节点发送所述第一节点加入信息;

其中,需要说明的是,可以在所述第一节点中预先配置所加入的最下层的
组的组播地址,所述第一节点根据所加入的最下层的组的组播地址,采用组播
的方式向所加入的最下层的组中所有的节点发送所述第一节点加入信息,以提
高所述第一节点加入信息的传播效率;

其中,需要说明的是,分布式集群系统中节点的节点标识具体用于对一个
节点进行定位,接收到所述第一节点加入信息的节点,可以通过所述第一节点
信息所携带的所述第一节点的节点标识,找到所述第一节点;作为示例而非限
定,所述分布式集群系统中节点的节点标识可以是节点的IP地址;

需要说明的是,执行本步骤S201之后,所述第一节点的第一节点加入信息
被传播到所述第一节点所加入的最下层的组中的每一个节点;

S302:所述第一节点所加入的最下层的组的公共节点接收到所述第一节点
加入信息后,向所述公共节点所在的上一层的组中所有节点发送所述第一节点
加入信息,以使得其他的公共节点将所述第一节点加入信息传递至所述分布式
集群系统中的所有节点;

具体地,所述第一节点所加入的最下层的组的公共节点接收到所述第一节
点加入信息后,向所述公共节点所在的上一层的组中所有节点发送所述第一节
点加入信息,若所述公共节点所在的所述上一层不是最上层,则所述公共节点
所在的所述上一层的组中所有节点继续向上转发所述第一节点加入信息,直至
所述第一节点加入信息被传递至最上层中的所有节点;接收到所述第一节点加
入信息的最上层的节点向其所在的下一层的组中所有节点发送所述第一节点加
入信息,若所述最上层的节点所在的下一层不是最下层,则所述最上层的节点
所在的下一层的组中所有节点继续向下转发所述第一节点加入信息,直至所述
第一节点加入信息被传递至最下层中的所有节点;

其中,需要说明的是,可以在所述分布式集群系统的公共节点中预先配置
所述公共节点所在组的组播地址,则所述第一节点所加入的最下层的组的公共
节点根据其所在的上一层的组的组播地址,采用组播的方式向所述公共节点所
在的所述上一层的组中所有节点发送所述第一节点加入信息;

可选地,所有接收到所述第一节点加入信息的公共节点根据所在组的组播
地址,采用组播的方式向所在组中所有节点发送所述第一节点加入信息;

其中,还可以在分布式集群系统的每个节点中预先配置位于每层的预选组
的组播地址,每个节点从位于每层的预选组中选择所在的组,根据所在组的组
播地址,采用组播的方式向同一组中所有节点发送第一节点加入信息;

需要说明的是,可以在分布式集群系统的每个节点中预先保存集群成员列
表,接收到所述第一节点加入信息的节点在自身保存的集群成员列表中增加所
述第一节点的节点标识;

需要说明的是,可以在分布式集群系统的每个节点中预先保存其所在的每
个组的成员列表,若接收到所述第一节点加入信息的节点与所述第一节点在同
一组中,所述接收到所述第一节点加入信息的节点在所述同一组的成员列表中
增加所述第一节点的节点标识;

需要说明的是,与所述第一节点在同一组的节点在所述同一组的成员列表
中增加所述第一节点的节点标识后,将自身保存的所述同一组的成员列表以及
所述集群成员列表发送至所述第一节点保存,以便所述第一节点获得所加入的
组的成员信息,以及集群成员信息;

需要说明的是,所述集群成员列表中包括所述分布式集群系统中每个节点
的节点标识,每个节点所在组的成员列表中包括所述所在组中每个节点的节点
标识;所述集群成员列表用于发送数据,在每个节点中保存的其所在的每个组
的成员列表用于在每个组的成员之间维持心跳关系,以便检查节点的状态。

需要说明的是,若所述第一节点所加入的最下层的组仅有所述第一节点,
所述第一节点向所加入的最下层的组中所有节点发送第一节点加入信息,由于
所述第一节点所加入的最下层的组仅该第一节点,则该第一节点同时属于与上
一层的公共节点,该第一节点接收到自身发送的第一节点加入信息后,向其所
在的所述上一层的组中所有节点发送所述第一节点加入信息。

本发明实施例提供的一种在分布式集群系统中传播节点状态信息的方法,
通过采用多层次的网络结构,将第一节点加入信息的传播范围约束在不同的组
内,降低了第一节点加入信息路由的次数,从而减少了第一节点加入信息传播
到分布式集群系统中每一个节点的时间;其次,通过将第一节点加入信息的传
播范围约束在不同的组内,减轻了对系统整体的负载。

如图4所示,为本发明实施例提供的另一种在分布式集群系统中传播节点
状态信息的方法流程示意图,所述方法包括:

S401:当第一节点加入所述分布式集群系统时,所述第一节点向所加入的
最下层的组中所有节点发送第一节点加入信息,所述第一节点加入信息包括所
述第一节点的节点标识;

其中,需要说明的是,可以在所述第一节点中预先配置所加入的最下层的
组的组播地址,所述第一节点根据所加入的最下层的组的组播地址,采用组播
的方式向所加入的最下层的组中所有的节点发送所述第一节点加入信息,以提
高所述第一节点加入信息的传播效率;

S402:所述第一节点所加入的最下层的组的公共节点接收到所述第一节点
加入信息后,向所述公共节点所在的上一层的组中所有节点发送所述第一节点
加入信息,以使得其它的公共节点将所述第一节点加入信息传递至所述分布式
集群系统中的所有节点;

具体地,所述第一节点所加入的最下层的组的公共节点接收到所述第一节
点加入信息后,向所述公共节点所在的上一层的组中所有节点发送所述第一节
点加入信息,若所述公共节点所在的所述上一层不是最上层,则所述公共节点
所在的所述上一层的组中所有节点继续向上转发所述第一节点加入信息,直至
所述第一节点加入信息被传递至最上层中所有节点;接收到所述第一节点加入
信息的最上层的节点向其所在的下一层的组中所有节点发送所述第一节点加入
信息,若所述最上层的节点所在的下一层不是最下层,则所述最上层的节点所
在的下一层的组中所有节点继续向下转发所述第一节点加入信息,直至所述第
一节点加入信息被传递至最下层中的所有节点;例如,若所述分布式集群系统
包括三层,最下层与最上层之间有一个中间层,所述第一节点加入最下层A组,
则最下层A组中的公共节点接收到第一节点加入信息后,向所述公共节点所在
的中间层的组中所有节点发送所述第一节点加入信息,所述中间层的组与最上
层的公共节点接收到所述第一节点加入信息后,向最上层中所有节点发送所述
第一节点加入信息;从最上层的节点向最下层的节点转发所述第一节点加入信
息的过程与此相反,在此不再赘述;

其中,需要说明的是,可以在所述分布式集群系统的公共节点中预先配置
所述公共节点所在组的组播地址,则所述第一节点所加入的最下层的组的公共
节点根据其所在的上一层的组的组播地址,采用组播的方式向所述公共节点所
在的所述上一层的组中所有节点发送所述第一节点加入信息;

可选地,所有接收到所述第一节点加入信息的公共节点根据所在组的组播
地址,采用组播的方式向所在组中所有节点发送所述第一节点加入信息;

其中,还可以在分布式集群系统的每个节点中预先配置位于每层的预选组
的组播地址,每个节点从位于每层的预选组中选择所在的组,根据所在组的组
播地址,采用组播的方式向同一组中所有节点发送第一节点加入信息;

需要说明的是,可以在分布式集群系统的每个节点中预先保存集群成员列
表,接收到所述第一节点加入信息的节点在自身保存的集群成员列表中增加所
述第一节点的节点标识;

需要说明的是,可以在分布式集群系统的每个节点中预先保存其所在的每
个组的成员列表,若接收到所述第一节点加入信息的节点与所述第一节点在同
一组中,接收到所述第一节点加入信息的节点在所述同一组的成员列表中增加
所述第一节点的节点标识;

需要说明的是,与所述第一节点在同一组的节点在所述同一组的成员列表
中增加所述第一节点的节点标识后,将自身保存的所述同一组的成员列表以及
所述集群成员列表发送至所述第一节点保存,以便所述第一节点获得所加入的
组的成员信息,以及集群成员信息;

需要说明的是,所述集群成员列表用于发送数据,在每个节点中配置的其
所在的每个组的成员列表用于在每个组的成员之间维持心跳关系,以便检查节
点的状态;

需要说明的是,若所述第一节点所加入的最下层的组仅有所述第一节点,
所述第一节点向所加入的最下层的组中所有节点发送第一节点加入信息,由于
所述第一节点所加入的最下层的组仅该第一节点,则该第一节点同时属于与上
一层的公共节点,该第一节点接收到自身发送的第一节点加入信息后,向其所
在的所述上一层的组中所有节点发送所述第一节点加入信息;

S403:当所述第一节点退出所述分布式集群系统时,检测到所述第一节点
退出所述分布式集群系统的节点向自身所在组中所有节点发送第一节点退出信
息,所述第一节点退出信息包括所述第一节点的节点标识,直至所述第一节点
加入信息被传递至最上层中所有节点;

具体地,若所述检测到所述第一节点退出所述分布式集群系统的节点位于
所述最上层,则所述检测到所述第一节点退出的节点向自身所在的所述最上层
中所有节点发送所述第一节点退出信息;或者,若所述检测到所述第一节点退
出所述分布式集群系统的节点不位于所述最上层,则所述检测到所述第一节点
退出的节点向其所在的上一层的组中所有节点发送所述第一节点退出信息,直
至所述第一节点退出信息被传递至所述最上层中所有节点;

其中,需要说明的是,每个节点与同一组中至少一个节点建立心跳,每个
节点通过建立的心跳判断其他节点是否退出分布式集群系统,当一个节点加入
或退出一个组时,该组的成员之间会重新建立心跳;例如,节点A与节点B建
立有心跳,若节点A在规定的时间内还没有接收到节点B发送的心跳信息,则
节点A确定节点B已退出分布式集群系统,并将节点B退出的信息通知节点A
所在组中的所有节点;

需要说明的是,检测到所述第一节点退出所述分布式集群系统的节点可以
根据其所在组的组播地址,采用组播的方式向其所在组中所有节点发送所述第
一节点退出信息;

其中,需要说明的是,检测到所述第一节点退出分布式集群系统的节点可
以是与所述第一节点在同一组的公共节点,也可以是与所述第一节点在同一组
的非公共节点;

S404:接收到所述第一节点退出信息的最上层的节点向所述节点所在的下
一层的组中所有节点发送所述第一节点退出信息,若所述最上层的节点所在的
下一层不是最下层,则所述最上层的节点所在的下一层的组中所有节点继续向
下转发所述第一节点退出信息,直至所述第一节点退出信息被传递至最下层中
的所有节点;

其中,需要说明的是,接收到所述第一节点退出信息的节点在自身保存的
集群成员列表中删除所述第一节点的节点标识;

还需要说明的是,若接收到所述第一节点退出信息的节点与所述第一节点
在同一组中,所述接收到所述第一节点退出信息的节点在所述同一组的成员列
表中删除所述第一节点的节点标识;

需要说明的是,检测到所述第一节点退出分布式集群系统的节点可能位于
多个层,同时位于多个组中,则检测到所述第一节点退出分布式集群系统的节
点向其所在的每一个组中所有节点发送所述第一节点退出信息;例如,若分布
式集群系统仅包括两层,检测到第一节点退出分布式集群系统的节点为两层的
公共节点,则该公共节点向其所在的位于最下层和位于最上层的组中所有节点
发送所述第一节点退出信息;

本实施例中,由于上层由与相邻下层的公共节点组成,所以若一个节点位
于上层,则该节点也将位于下层;例如,若分布式集群系统包括两层,节点A
位于顶层,则该节点A将同时位于底层。

本实施例中,所述分布式集群系统中的第二节点可以对其所在组的成员列
表中的节点标识进行排序,并根据排序的结果确定自身是否需要加入或退出其
所在组的上一层,若所述第二节点确定需要加入所述其所在组的上一层,则所
述第二节点向所加入的所述上一层的组中所有节点发送第二节点加入信息,所
述第二节点加入信息包括所述第二节点的节点标识;或者,若所述第二节点确
定需要退出所述其所在组的上一层,则所述第二节点向所退出的所述上一层的
组中所有节点发送第二节点退出信息,所述第二节点退出信息包括所述第二节
点的节点标识;作为示例而非限定,在其中一种具体的实施方式中,若分布式
集群系统包括两层,最下层称为底层,最上层称为顶层,第二节点位于底层A
组,则所述第二节点对底层A组的成员列表中的节点标识进行排序,并检测自
身的节点标识是否排在所述底层A组的成员列表的前N(N≥1)位,若是,且
所述第二节点原来不属于顶层的成员,则所述第二节点确定需要加入顶层,若
不是,且所述第二节点原来属于顶层的成员,则所述第二节点确定需要退出顶
层;

需要说明的是,所述第二节点对其所在组的成员列表中的节点标识进行排
序的方式,可以包括:

所述第二节点对其所在的成员列表中的节点标识进行哈希运算,得到与所
述节点标识对应的哈希值,根据得到的哈希值大小对哈希值对应的节点标识进
行排序;

可选地,可以在所述第一节点加入信息中携带对所述第一节点的节点标识
进行哈希运算得到的哈希值,接收到第一节点加入信息的第二节点在保存所述
第一节点的节点标识的同时,保存与所述第一节点的节点标识对应的哈希值,
以便对所述第二节点对所在组的成员列表中的节点标识进行排序;

同样地,也可以在所述第二节点加入信息中携带对所述第二节点的节点标
识进行哈希运算得到的哈希值,接收到所述第二节点加入信息的节点在保存所
述第二节点的节点标识的同时,保存与所述第二节点的节点标识对应的哈希值;
其中,需要说明的是,所述第二节点可以为所述分布式集群系统中的任一节点,
所述第二节点与所述第一节点可以为同一节点;

可选地,可以在所述第二节点接收到所述第一节点加入信息并在相应组的
成员列表中保存所述第一节点的节点标识后,对相应组的成员列表中的节点标
识进行排序。

可选地,若所述第二节点确定需要加入其所在的组的上一层,所述第二节
点可以根据所加入的所述上一层的组的组播地址,采用组播的方式向所加入的
所述上一层的组中所有节点发送所述第二节点加入信息;若所述第二节点确定
需要退出其所在组的上一层,所述第二节点根据所退出的所述上一层的组的组
播地址,采用组播的方式向所述上一层的组中所有节点发送所述第二节点退出
信息。

需要说明的是,若所述第二节点确定需要加入其所在组的上一层,则接收
到所述第二节点加入信息的节点在其所在的所述上一层的组的成员列表中增加
所述第二节点的节点标识;若所述第二节点确定需要退出其所在组的上一层,
则接收到所述第二节点退出信息的节点在其所在的所述上一层的组的成员列表
中删除所述第二节点的节点标识。

需要说明的是,所述接收到所述第二节点加入信息的节点可以将增加后的
所述上一层的组的成员列表发送到所述第二节点,以便第二节点获知所加入的
所述上一层的组的成员信息。

可选地,可以在所述第二节点接收到所述第二节点加入信息并在相应组的
成员列表中保存所述第二节点的节点标识后,对相应组的成员列表中的节点标
识进行排序。

需要说明的是,可以在所述分布式集群系统的每个节点中配置层标识符,
所述层标识符用以标识所述每个节点所在的层。

需要说明的是,本实施例将第一节点加入信息,第一节点退出信息,第二
节点加入信息以及第二节点退出信息统称为节点状态信息。

本发明实施例提供的方法实施例,通过采用多层次的网络结构,将节点状
态信息的传播范围约束在不同的组内,降低了节点状态信息路由的次数,从而
减少了节点状态信息传播到分布式集群系统中每一个节点的时间;其次,通过
将节点状态信息的传播范围约束在不同的组内,减轻了对系统整体的负载;另
外,该分布式集群系统可以动态地选择相邻两层的公共节点,在原来的公共节
点出现故障退出分布式集群系统时,可以重新选择相邻两层的公共节点,提高
了系统传播节点状态信息的可靠性。

如图5所示,为本发明实施例提供的一种分布式集群系统示意图。为方便
理解,该示意图以三层为例。需要说明的是,所述分布式集群系统并不限定系
统中的层数,该分布式集群系统包括至少两层,上层与相邻下层之间存在公共
节点,所述上层由与相邻下层的公共节点组成,每层包括至少一个组,下层每
组包括至少一个与相邻上层的公共节点,其中,

当第一节点加入所述分布式集群系统时,所述第一节点用于向所加入的最
下层的组中所有节点发送第一节点加入信息,所述第一节点加入信息包括所述
第一节点的节点标识;

所述第一节点所加入的最下层的组的公共节点用于接收所述第一节点加入
信息,并向所述公共节点所在的上一层的组中所有节点发送所述第一节点加入
信息,以使得其它的公共节点将所述第一节点加入信息传递至所述分布式集群
系统中的所有节点。

其中,需要说明的是,当所述第一节点退出所述分布式集群系统时,检测
到所述第一节点退出所述分布式集群系统的节点用于向自身所在组中所有节点
发送第一节点退出信息,所述第一节点退出信息包括所述第一节点的节点标识,
直至所述第一节点加入信息被传递至最上层中所有节点;

接收到所述第一节点退出信息的最上层的节点用于向其所在的下一层的组
中所有节点发送所述第一节点退出信息,若所述最上层的节点所在的下一层不
是最下层,则所述最上层的节点所在的下一层的组中所有节点继续向下转发所
述第一节点退出信息,直至所述第一节点退出信息被传递至最下层中的所有节
点。

本发明实施例提供的一种在分布式集群系统中传播节点状态信息的方法及
系统,通过采用多层次的网络结构,将节点状态信息的传播范围约束在不同的
组内,降低了节点状态信息路由的次数,从而减少了节点状态信息传播到分布
式集群系统中每一个节点的时间;其次,通过将节点状态信息的传播范围约束
在不同的组内,减轻了对系统整体的负载;另外,该分布式集群系统可以动态
地选择相邻两层的公共节点,在原来的公共节点出现故障退出分布式集群系统
时,可以重新选择相邻两层的公共节点,提高了系统传播节点状态信息的可靠
性。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上
述实施例方法中的全部或部分步骤可借助软件加必需的通用硬件平台的方式来
实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献
的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介
质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备
(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者
实施例的某些部分所述的方法。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实
施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实
施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,
所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述
的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可
以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,
即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需
要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术
人员在不付出创造性劳动的情况下,即可以理解并实施。

总之,以上所述仅为本发明技术方案的较佳实施例而已,并非用于限定本
发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、
改进等,均应包含在本发明的保护范围之内。

一种在分布式集群系统中传播节点状态信息的方法及系统.pdf_第1页
第1页 / 共18页
一种在分布式集群系统中传播节点状态信息的方法及系统.pdf_第2页
第2页 / 共18页
一种在分布式集群系统中传播节点状态信息的方法及系统.pdf_第3页
第3页 / 共18页
点击查看更多>>
资源描述

《一种在分布式集群系统中传播节点状态信息的方法及系统.pdf》由会员分享,可在线阅读,更多相关《一种在分布式集群系统中传播节点状态信息的方法及系统.pdf(18页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 102845036 A (43)申请公布日 2012.12.26 C N 1 0 2 8 4 5 0 3 6 A *CN102845036A* (21)申请号 201280000590.7 (22)申请日 2012.02.06 H04L 12/56(2006.01) (71)申请人华为技术有限公司 地址 518129 广东省深圳市龙岗区坂田华为 总部办公楼 (72)发明人宁德刚 王道辉 杨德平 (54) 发明名称 一种在分布式集群系统中传播节点状态信息 的方法及系统 (57) 摘要 本发明涉及信息技术领域,尤其涉及一种在 分布式集群系统中传播节点状态信息的方法及装 置。

2、。本发明实施例提供的一种在分布式集群系统 中传播节点状态的方法,其中,所述分布式集群系 统包括至少两层,上层与相邻下层之间存在公共 节点,所述上层由与所述相邻下层的公共节点组 成,每层包括至少一个组,下层每组包括至少一个 与相邻上层的公共节点,当第一节点加入所述分 布式集群系统时,通过分布式集群系统中的公共 节点将所述第一节点的第一节点加入信息传播至 所述分布式集群系统中的每一个节点。通过本发 明实施例提供的方法,降低了节点状态信息被路 由的次数,从而减少了节点状态信息传播到分布 式集群系统中每一个节点的时间。 (85)PCT申请进入国家阶段日 2012.08.08 (86)PCT申请的申请数。

3、据 PCT/CN2012/070910 2012.02.06 (51)Int.Cl. 权利要求书3页 说明书9页 附图5页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 3 页 说明书 9 页 附图 5 页 1/3页 2 1.一种在分布式集群系统中传播节点状态信息的方法,其特征在于,所述分布式集群 系统包括至少两层,上层与相邻下层之间存在公共节点,所述上层由与所述相邻下层的公 共节点组成,每层包括至少一个组,下层每组包括至少一个与相邻上层的公共节点,所述方 法包括: 当第一节点加入所述分布式集群系统时,所述第一节点向所加入的最下层的组中所有 节点发送第一节点加入信息,。

4、所述第一节点加入信息包括所述第一节点的节点标识; 所述第一节点所加入的最下层的组的公共节点接收到所述第一节点加入信息后,向所 述公共节点所在的上一层的组中所有节点发送所述第一节点加入信息,以使得其它的公共 节点将所述第一节点加入信息传递至所述分布式集群系统中的所有节点。 2.如权利要求1所述的方法,其特征在于,所述第一节点所加入的最下层的组的公共 节点接收到所述第一节点加入信息后,向所述公共节点所在的上一层的组中所有节点发送 所述第一节点加入信息,以使得其它的公共节点将所述第一节点加入信息传递至所述分布 式集群系统中的所有节点,包括: 所述第一节点所加入的最下层的组的公共节点接收到所述第一节点。

5、加入信息后,向所 述公共节点所在的上一层的组中所有节点发送所述第一节点加入信息,若所述公共节点所 在的所述上一层不是最上层,则所述公共节点所在的所述上一层的组中所有节点继续向上 转发所述第一节点加入信息,直至所述第一节点加入信息被传递至最上层中的所有节点; 接收到所述第一节点加入信息的最上层的节点向其所在的下一层的组中所有节点发 送所述第一节点加入信息,若所述最上层的节点所在的下一层不是最下层,则所述最上层 的节点所在的下一层的组中所有节点继续向下转发所述第一节点加入信息,直至所述第一 节点加入信息被传递至最下层中的所有节点。 3.如权利要求1或2所述的方法,其特征在于,还包括: 在所述第一节。

6、点中预先配置所加入的最下层的组的组播地址; 则所述第一节点向所加入的最下层的组中所有节点发送第一节点加入信息,包括: 所述第一节点根据所加入的最下层的组的组播地址,采用组播的方式向所加入的最下 层的组中所有节点发送所述第一节点加入信息。 4.如权利要求3所述的方法,其特征在于,还包括: 在所述分布式集群系统的公共节点中预先配置所述公共节点所在组的组播地址; 则所述第一节点所加入的最下层的组的公共节点向所述公共节点所在的上一层的组 中所有节点发送所述第一节点加入信息,包括: 所述第一节点所加入的最下层的组的公共节点根据其所在的上一层的组的组播地址, 采用组播的方式向所述公共节点所在的所述上一层的。

7、组中所有节点发送所述第一节点加 入信息。 5.如权利要求1至4中任一权利要求所述的方法,其特征在于,还包括: 接收到所述第一节点加入信息的节点在自身保存的集群成员列表中增加所述第一节 点的节点标识。 6.如权利要求5所述的方法,其特征在于,还包括: 若所述接收到所述第一节点加入信息的节点与所述第一节点在同一组中,所述接收到 所述第一节点加入信息的节点在所述同一组的成员列表中增加所述第一节点的节点标识。 权 利 要 求 书CN 102845036 A 2/3页 3 7.如权利要求6所述的方法,其特征在于,所述接收到所述第一节点加入信息的节点 在所述同一组的成员列表中增加所述第一节点的节点标识之后。

8、,还包括: 所述接收到所述第一节点加入信息的节点将自身保存的所述同一组的成员列表以及 所述集群成员列表发送至所述第一节点。 8.如权利要求1至7中任一权利要求所述的方法,其特征在于,还包括: 当所述第一节点退出所述分布式集群系统时,检测到所述第一节点退出所述分布式集 群系统的节点向自身所在组中所有节点发送第一节点退出信息,所述第一节点退出信息包 括所述第一节点的节点标识,直至所述第一节点加入信息被传递至最上层中所有节点; 接收到所述第一节点退出信息的最上层的节点向其所在的下一层的组中所有节点发 送所述第一节点退出信息,若所述最上层的节点所在的下一层不是最下层,则所述最上层 的节点所在的下一层的。

9、组中所有节点继续向下转发所述第一节点退出信息,直至所述第一 节点退出信息被传递至最下层中的所有节点。 9.如权利要求8所述的方法,其特征在于,所述检测到所述第一节点退出所述分布式 集群系统的节点向自身所在组中所有节点发送第一节点退出信息,直至所述第一节点加入 信息被传递至最上层中所有节点,包括: 若所述检测到所述第一节点退出所述分布式集群系统的节点位于所述最上层,则所述 检测到所述第一节点退出的节点向自身所在的所述最上层中所有节点发送所述第一节点 退出信息;或者, 若所述检测到所述第一节点退出所述分布式集群系统的节点不位于所述最上层,则所 述检测到所述第一节点退出的节点向其所在的上一层的组中所。

10、有节点发送所述第一节点 退出信息,直至所述第一节点退出信息被传递至所述最上层中所有节点。 10.如权利要求8或9所述的方法,其特征在于,还包括: 接收到所述第一节点退出信息的节点在自身保存的集群成员列表中删除所述第一节 点的节点标识。 11.如权利要求10所述的方法,其特征在于,还包括: 若接收到所述第一节点退出信息的节点与所述第一节点在同一组中,所述接收到所述 第一节点退出信息的节点在所述同一组的成员列表中删除所述第一节点的节点标识。 12.如权利要求6或11所述的方法,其特征在于,还包括: 在所述分布式集群系统的每个节点中预先保存所述集群成员列表,以及自身所在的每 个组的成员列表。 13.。

11、如权利要求6或11所述的方法,其特征在于,还包括: 所述分布式集群系统中的第二节点对所在组的成员列表中的节点标识进行排序,根据 排序的结果确定自身是否需要加入或退出所述其所在组的上一层; 若所述第二节点确定需要加入所述其所在组的上一层,则所述第二节点向所加入的所 述上一层的组中所有节点发送第二节点加入信息,所述第二节点加入信息包括所述第二节 点的节点标识;或者, 若所述第二节点确定需要退出所述其所在组的上一层,则所述第二节点向所退出的所 述上一层的组中所有节点发送第二节点退出信息,所述第二节点退出信息包括所述第二节 点的节点标识。 权 利 要 求 书CN 102845036 A 3/3页 4 。

12、14.如权利要求13所述的方法,其特征在于,所述第二节点向其所加入的所述上一层 的组中所有节点发送所述第二节点加入信息,包括: 所述第二节点根据所加入的所述上一层的组的组播地址,采用组播的方式向所加入的 所述上一层的组中所有节点发送所述第二节点加入信息。 15.如权利要求13所述的方法,其特征在于,所述第二节点向所退出的所述上一层的 组中所有节点发送所述第二节点退出信息,包括: 所述第二节点根据所退出的所述上一层的组的组播地址,采用组播的方式向所述上一 层的组中所有节点发送所述第二节点退出信息。 16.如权利要求13或14所述的方法,其特征在于,还包括: 若所述第二节点确定需要加入所述其所在组。

13、的上一层,则接收到所述第二节点加入信 息的节点在其所在的所述上一层的组的成员列表中增加所述第二节点的节点标识。 17.如权利要求16所述的方法,其特征在于,还包括: 所述接收到所述第二节点加入信息的节点将增加后的所述上一层的组的成员列表发 送到所述第二节点。 18.如权利要求13或15所述的方法,其特征在于,还包括: 若所述第二节点确定需要退出所述其所在组的上一层,则接收到所述第二节点退出信 息的节点在其所在的所述上一层的组的成员列表中删除所述第二节点的节点标识。 19.一种分布式集群系统,其特征在于,包括至少两层,上层与相邻下层之间存在公共 节点,所述上层由与所述相邻下层的公共节点组成,每层。

14、包括至少一个组,下层每组包括至 少一个与相邻上层的公共节点,其中, 当第一节点加入所述分布式集群系统时,所述第一节点用于向所加入的最下层的组中 所有节点发送第一节点加入信息,所述第一节点加入信息包括所述第一节点的节点标识; 所述第一节点所加入的最下层的组的公共节点用于接收所述第一节点加入信息,并向 所述公共节点所在的上一层的组中所有节点发送所述第一节点加入信息,以使得其它的公 共节点将所述第一节点加入信息传递至所述分布式集群系统中的所有节点。 20.如权利要求19所述的系统,其特征在于: 当所述第一节点退出所述分布式集群系统时,检测到所述第一节点退出所述分布式 集群系统的节点用于向自身所在组中。

15、所有节点发送第一节点退出信息,所述第一节点退出 信息包括所述第一节点的节点标识,直至所述第一节点加入信息被传递至最上层中所有节 点; 接收到所述第一节点退出信息的最上层的节点用于向其所在的下一层的组中所有节 点发送所述第一节点退出信息,若所述最上层的节点所在的下一层不是最下层,则所述最 上层的节点所在的下一层的组中所有节点继续向下转发所述第一节点退出信息,直至所述 第一节点退出信息被传递至最下层中的所有节点。 权 利 要 求 书CN 102845036 A 1/9页 5 一种在分布式集群系统中传播节点状态信息的方法及系统 技术领域 0001 本发明涉及信息技术(Information Tech。

16、nology,简称:IT)领域,尤其涉及一种 在分布式集群系统中传播节点状态信息的方法及系统。 背景技术 0002 现有的分布式集群系统由节点组成,节点之间通过网络进行互联,每个节点都保 存有集群成员信息,每个节点从分布式集群系统中随机选择M(M1)个节点维持心跳。当 集群的规模不能满足应用需求时,需向分布式集群系统添加新的节点,以便增加分布式集 群系统的处理能力;当分布式集群系统中的节点发生故障时,发生故障的节点会退出分布 式集群系统。在节点加入或退出分布式集群系统时,分布式集群系统的成员将发生改变。 0003 为了在节点加入分布式集群系统时,能够快速地将新加入节点的信息传播到分布 式集群系。

17、统的每个节点,新加入节点将节点加入信息发送到该分布式集群系统中的一个节 点,接收到该节点加入信息的节点向与自身建立心跳的节点发送该节点加入信息,以便将 该节点加入信息传播到分布式集群系统的每一个节点。当有节点退出分布式集群系统时, 与退出节点建立心跳的节点检测到该退出节点退出分布式集群系统,并向建立心跳的其他 节点发送节点退出信息,接收到该节点退出信息的节点向与自身建立心跳的节点发送该节 点退出信息,以便将该节点退出信息传播到分布式集群系统的每一个节点。其中,该节点加 入信息以及节点退出信息统称为节点状态信息。 0004 通过对现有技术的分析,发明人认为现有技术至少存在以下问题: 0005 当。

18、节点加入或退出分布式集群系统时,节点状态信息通过建立心跳的节点扩散, 分布式集群系统中每一个节点均接收到节点状态信息所需的时间与分布式集群系统中节 点的数目呈对数关系。当分布式集群中节点规模较大时,需要经历很长的时间才能将该节 点状态信息传播到分布式集群系统中的每一个节点。 发明内容 0006 本发明实施例的目的在于提供一种在分布式集群系统中传播节点状态信息的方 法及装置,以便于减少节点状态信息传播到分布式集群系统中每一个节点的时间。 0007 一方面,本发明实施例提供一种在分布式集群系统中传播节点状态信息的方法, 所述分布式集群系统包括至少两层,上层与相邻下层之间存在公共节点,所述上层由与所。

19、 述相邻下层的公共节点组成,每层包括至少一个组,下层每组包括至少一个与相邻上层的 公共节点,所述方法包括: 0008 当第一节点加入所述分布式集群系统时,所述第一节点向所加入的最下层的组中 所有节点发送第一节点加入信息,所述第一节点加入信息包括所述第一节点的节点标识; 0009 所述第一节点所加入的最下层的组的公共节点接收到所述第一节点加入信息后, 向所述公共节点所在的上一层的组中所有节点发送所述第一节点加入信息,以使得其它的 公共节点将所述第一节点加入信息传递至所述分布式集群系统中的所有节点。 说 明 书CN 102845036 A 2/9页 6 0010 另一方面,本发明实施例提供一种分布。

20、式集群系统,包括至少两层,上层与相邻下 层之间存在公共节点,所述上层由与所述相邻下层的公共节点组成,每层包括至少一个组, 下层每组包括至少一个与相邻上层的公共节点,其中, 0011 当第一节点加入所述分布式集群系统时,所述第一节点用于向所加入的最下层的 组中所有节点发送第一节点加入信息,所述第一节点加入信息包括所述第一节点的节点标 识; 0012 所述第一节点所加入的最下层的组的公共节点用于接收所述第一节点加入信息, 并向所述公共节点所在的上一层的组中所有节点发送所述第一节点加入信息,以使得其它 的公共节点将所述第一节点加入信息传递至所述分布式集群系统中的所有节点。 0013 本发明实施例提供。

21、的一种在分布式集群系统中传播节点状态信息的方法及装置, 通过采用多层次的网络结构,将节点状态信息的传播范围约束在不同的组内,降低了节点 状态信息路由的次数,从而减少了节点状态信息传播到分布式集群系统中每一个节点的时 间。 附图说明 0014 图1为本发明实施例提供的一种分布式集群系统架构示意图; 0015 图2为本发明实施例提供的另一种分布式集群系统架构示意图; 0016 图3为本发明实施例提供的一种在分布式集群系统中传播节点状态信息的方法 示意图; 0017 图4为本发明实施例提供的另一种在分布式集群系统中传播节点状态信息的方 法示意图; 0018 图5为本发明实施例提供的一种分布式集群系统。

22、示意图。 具体实施方式 0019 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部实施例。基于 本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下获得的所有其他实 施例,都属于本发明保护的范围。 0020 如图1所示,为本发明实施例提供的一种分布式集群系统架构示意图。其中,该系 统包括两层,分别为最上层和最下层,最上层称为顶层,最下层称为底层,顶层与底层之间 存在公共节点,顶层由与底层的公共节点组成,即顶层中的节点是底层中节点的子集,每层 包括至少一个组,底层每组包括至少一个与顶层的公共节点。

23、,即底层每个组选择至少一个 节点作为与顶层的公共节点。 0021 如图2所示,为本发明实施例提供的另一种分布式集群系统架构示意图。其中,该 系统包括三层,最上层称为顶层,最下层称为底层,顶层与底层之间有一个中间层,上层与 相邻下层之间存在公共节点,所述上层由与所述相邻下层的公共节点组成,即上层中的节 点是相邻下层中节点的子集,每层包括至少一个组,下层每组包括至少一个与相邻上层的 公共节点,即下层每组选择至少一个节点作为与相邻上层的公共节点。 0022 其中,需要说明的是,本发明实施例并不限定分布式集群系统的层数,所述分布式 说 明 书CN 102845036 A 3/9页 7 集群系统可以包括。

24、至少两层,最上层称为顶层,最下层称为底层,顶层与底层之间可以有至 少零个中间层,上层与相邻下层之间存在公共节点,所述上层由与所述相邻下层的公共节 点组成,每层包括至少一个组,下层每组包括至少一个与相邻上层的公共节点,即下层每个 组选择至少一个节点作为与相邻上层的公共节点。 0023 其中,需要说明的是,最上层一般仅包括一个组。 0024 其中,需要说明的是,并发明实施例并不限定所述分布式集群系统中节点的类型, 作为示例而非限定,所述分布式集群系统中的节点可以是各种PC机、上网本、服务器、智能 手机。 0025 基于图1或图2所示的系统架构示意图,本发明实施例提供一种在分布式集群系 统中传播节点。

25、状态信息的方法。如图3所示,该方法包括: 0026 S301:当有第一节点加入所述分布式集群系统时,所述第一节点向所加入的最下 层的组中所有节点发送第一节点加入信息,所述第一节点加入信息包括所述第一节点的节 点标识; 0027 例如,若所述第一节点加入最下层中的第一组,即底层第一组,则所述第一节点向 底层第一组中所有节点发送所述第一节点加入信息; 0028 其中,需要说明的是,可以在所述第一节点中预先配置所加入的最下层的组的组 播地址,所述第一节点根据所加入的最下层的组的组播地址,采用组播的方式向所加入的 最下层的组中所有的节点发送所述第一节点加入信息,以提高所述第一节点加入信息的传 播效率;。

26、 0029 其中,需要说明的是,分布式集群系统中节点的节点标识具体用于对一个节点进 行定位,接收到所述第一节点加入信息的节点,可以通过所述第一节点信息所携带的所述 第一节点的节点标识,找到所述第一节点;作为示例而非限定,所述分布式集群系统中节点 的节点标识可以是节点的IP地址; 0030 需要说明的是,执行本步骤S201之后,所述第一节点的第一节点加入信息被传播 到所述第一节点所加入的最下层的组中的每一个节点; 0031 S302:所述第一节点所加入的最下层的组的公共节点接收到所述第一节点加入信 息后,向所述公共节点所在的上一层的组中所有节点发送所述第一节点加入信息,以使得 其他的公共节点将所。

27、述第一节点加入信息传递至所述分布式集群系统中的所有节点; 0032 具体地,所述第一节点所加入的最下层的组的公共节点接收到所述第一节点加入 信息后,向所述公共节点所在的上一层的组中所有节点发送所述第一节点加入信息,若所 述公共节点所在的所述上一层不是最上层,则所述公共节点所在的所述上一层的组中所有 节点继续向上转发所述第一节点加入信息,直至所述第一节点加入信息被传递至最上层中 的所有节点;接收到所述第一节点加入信息的最上层的节点向其所在的下一层的组中所有 节点发送所述第一节点加入信息,若所述最上层的节点所在的下一层不是最下层,则所述 最上层的节点所在的下一层的组中所有节点继续向下转发所述第一节。

28、点加入信息,直至所 述第一节点加入信息被传递至最下层中的所有节点; 0033 其中,需要说明的是,可以在所述分布式集群系统的公共节点中预先配置所述公 共节点所在组的组播地址,则所述第一节点所加入的最下层的组的公共节点根据其所在的 上一层的组的组播地址,采用组播的方式向所述公共节点所在的所述上一层的组中所有节 说 明 书CN 102845036 A 4/9页 8 点发送所述第一节点加入信息; 0034 可选地,所有接收到所述第一节点加入信息的公共节点根据所在组的组播地址, 采用组播的方式向所在组中所有节点发送所述第一节点加入信息; 0035 其中,还可以在分布式集群系统的每个节点中预先配置位于每。

29、层的预选组的组播 地址,每个节点从位于每层的预选组中选择所在的组,根据所在组的组播地址,采用组播的 方式向同一组中所有节点发送第一节点加入信息; 0036 需要说明的是,可以在分布式集群系统的每个节点中预先保存集群成员列表,接 收到所述第一节点加入信息的节点在自身保存的集群成员列表中增加所述第一节点的节 点标识; 0037 需要说明的是,可以在分布式集群系统的每个节点中预先保存其所在的每个组的 成员列表,若接收到所述第一节点加入信息的节点与所述第一节点在同一组中,所述接收 到所述第一节点加入信息的节点在所述同一组的成员列表中增加所述第一节点的节点标 识; 0038 需要说明的是,与所述第一节点。

30、在同一组的节点在所述同一组的成员列表中增加 所述第一节点的节点标识后,将自身保存的所述同一组的成员列表以及所述集群成员列表 发送至所述第一节点保存,以便所述第一节点获得所加入的组的成员信息,以及集群成员 信息; 0039 需要说明的是,所述集群成员列表中包括所述分布式集群系统中每个节点的节点 标识,每个节点所在组的成员列表中包括所述所在组中每个节点的节点标识;所述集群成 员列表用于发送数据,在每个节点中保存的其所在的每个组的成员列表用于在每个组的成 员之间维持心跳关系,以便检查节点的状态。 0040 需要说明的是,若所述第一节点所加入的最下层的组仅有所述第一节点,所述第 一节点向所加入的最下层。

31、的组中所有节点发送第一节点加入信息,由于所述第一节点所加 入的最下层的组仅该第一节点,则该第一节点同时属于与上一层的公共节点,该第一节点 接收到自身发送的第一节点加入信息后,向其所在的所述上一层的组中所有节点发送所述 第一节点加入信息。 0041 本发明实施例提供的一种在分布式集群系统中传播节点状态信息的方法,通过采 用多层次的网络结构,将第一节点加入信息的传播范围约束在不同的组内,降低了第一节 点加入信息路由的次数,从而减少了第一节点加入信息传播到分布式集群系统中每一个节 点的时间;其次,通过将第一节点加入信息的传播范围约束在不同的组内,减轻了对系统整 体的负载。 0042 如图4所示,为本。

32、发明实施例提供的另一种在分布式集群系统中传播节点状态信 息的方法流程示意图,所述方法包括: 0043 S401:当第一节点加入所述分布式集群系统时,所述第一节点向所加入的最下层 的组中所有节点发送第一节点加入信息,所述第一节点加入信息包括所述第一节点的节点 标识; 0044 其中,需要说明的是,可以在所述第一节点中预先配置所加入的最下层的组的组 播地址,所述第一节点根据所加入的最下层的组的组播地址,采用组播的方式向所加入的 最下层的组中所有的节点发送所述第一节点加入信息,以提高所述第一节点加入信息的传 说 明 书CN 102845036 A 5/9页 9 播效率; 0045 S402:所述第一。

33、节点所加入的最下层的组的公共节点接收到所述第一节点加入信 息后,向所述公共节点所在的上一层的组中所有节点发送所述第一节点加入信息,以使得 其它的公共节点将所述第一节点加入信息传递至所述分布式集群系统中的所有节点; 0046 具体地,所述第一节点所加入的最下层的组的公共节点接收到所述第一节点加入 信息后,向所述公共节点所在的上一层的组中所有节点发送所述第一节点加入信息,若所 述公共节点所在的所述上一层不是最上层,则所述公共节点所在的所述上一层的组中所有 节点继续向上转发所述第一节点加入信息,直至所述第一节点加入信息被传递至最上层中 所有节点;接收到所述第一节点加入信息的最上层的节点向其所在的下一。

34、层的组中所有节 点发送所述第一节点加入信息,若所述最上层的节点所在的下一层不是最下层,则所述最 上层的节点所在的下一层的组中所有节点继续向下转发所述第一节点加入信息,直至所述 第一节点加入信息被传递至最下层中的所有节点;例如,若所述分布式集群系统包括三层, 最下层与最上层之间有一个中间层,所述第一节点加入最下层A组,则最下层A组中的公 共节点接收到第一节点加入信息后,向所述公共节点所在的中间层的组中所有节点发送所 述第一节点加入信息,所述中间层的组与最上层的公共节点接收到所述第一节点加入信息 后,向最上层中所有节点发送所述第一节点加入信息;从最上层的节点向最下层的节点转 发所述第一节点加入信息。

35、的过程与此相反,在此不再赘述; 0047 其中,需要说明的是,可以在所述分布式集群系统的公共节点中预先配置所述公 共节点所在组的组播地址,则所述第一节点所加入的最下层的组的公共节点根据其所在的 上一层的组的组播地址,采用组播的方式向所述公共节点所在的所述上一层的组中所有节 点发送所述第一节点加入信息; 0048 可选地,所有接收到所述第一节点加入信息的公共节点根据所在组的组播地址, 采用组播的方式向所在组中所有节点发送所述第一节点加入信息; 0049 其中,还可以在分布式集群系统的每个节点中预先配置位于每层的预选组的组播 地址,每个节点从位于每层的预选组中选择所在的组,根据所在组的组播地址,采。

36、用组播的 方式向同一组中所有节点发送第一节点加入信息; 0050 需要说明的是,可以在分布式集群系统的每个节点中预先保存集群成员列表,接 收到所述第一节点加入信息的节点在自身保存的集群成员列表中增加所述第一节点的节 点标识; 0051 需要说明的是,可以在分布式集群系统的每个节点中预先保存其所在的每个组的 成员列表,若接收到所述第一节点加入信息的节点与所述第一节点在同一组中,接收到所 述第一节点加入信息的节点在所述同一组的成员列表中增加所述第一节点的节点标识; 0052 需要说明的是,与所述第一节点在同一组的节点在所述同一组的成员列表中增加 所述第一节点的节点标识后,将自身保存的所述同一组的成。

37、员列表以及所述集群成员列表 发送至所述第一节点保存,以便所述第一节点获得所加入的组的成员信息,以及集群成员 信息; 0053 需要说明的是,所述集群成员列表用于发送数据,在每个节点中配置的其所在的 每个组的成员列表用于在每个组的成员之间维持心跳关系,以便检查节点的状态; 0054 需要说明的是,若所述第一节点所加入的最下层的组仅有所述第一节点,所述第 说 明 书CN 102845036 A 6/9页 10 一节点向所加入的最下层的组中所有节点发送第一节点加入信息,由于所述第一节点所加 入的最下层的组仅该第一节点,则该第一节点同时属于与上一层的公共节点,该第一节点 接收到自身发送的第一节点加入信。

38、息后,向其所在的所述上一层的组中所有节点发送所述 第一节点加入信息; 0055 S403:当所述第一节点退出所述分布式集群系统时,检测到所述第一节点退出所 述分布式集群系统的节点向自身所在组中所有节点发送第一节点退出信息,所述第一节点 退出信息包括所述第一节点的节点标识,直至所述第一节点加入信息被传递至最上层中所 有节点; 0056 具体地,若所述检测到所述第一节点退出所述分布式集群系统的节点位于所述最 上层,则所述检测到所述第一节点退出的节点向自身所在的所述最上层中所有节点发送所 述第一节点退出信息;或者,若所述检测到所述第一节点退出所述分布式集群系统的节点 不位于所述最上层,则所述检测到所。

39、述第一节点退出的节点向其所在的上一层的组中所有 节点发送所述第一节点退出信息,直至所述第一节点退出信息被传递至所述最上层中所有 节点; 0057 其中,需要说明的是,每个节点与同一组中至少一个节点建立心跳,每个节点通过 建立的心跳判断其他节点是否退出分布式集群系统,当一个节点加入或退出一个组时,该 组的成员之间会重新建立心跳;例如,节点A与节点B建立有心跳,若节点A在规定的时间 内还没有接收到节点B发送的心跳信息,则节点A确定节点B已退出分布式集群系统,并将 节点B退出的信息通知节点A所在组中的所有节点; 0058 需要说明的是,检测到所述第一节点退出所述分布式集群系统的节点可以根据其 所在组。

40、的组播地址,采用组播的方式向其所在组中所有节点发送所述第一节点退出信息; 0059 其中,需要说明的是,检测到所述第一节点退出分布式集群系统的节点可以是与 所述第一节点在同一组的公共节点,也可以是与所述第一节点在同一组的非公共节点; 0060 S404:接收到所述第一节点退出信息的最上层的节点向所述节点所在的下一层 的组中所有节点发送所述第一节点退出信息,若所述最上层的节点所在的下一层不是最下 层,则所述最上层的节点所在的下一层的组中所有节点继续向下转发所述第一节点退出信 息,直至所述第一节点退出信息被传递至最下层中的所有节点; 0061 其中,需要说明的是,接收到所述第一节点退出信息的节点在。

41、自身保存的集群成 员列表中删除所述第一节点的节点标识; 0062 还需要说明的是,若接收到所述第一节点退出信息的节点与所述第一节点在同一 组中,所述接收到所述第一节点退出信息的节点在所述同一组的成员列表中删除所述第一 节点的节点标识; 0063 需要说明的是,检测到所述第一节点退出分布式集群系统的节点可能位于多个 层,同时位于多个组中,则检测到所述第一节点退出分布式集群系统的节点向其所在的每 一个组中所有节点发送所述第一节点退出信息;例如,若分布式集群系统仅包括两层,检测 到第一节点退出分布式集群系统的节点为两层的公共节点,则该公共节点向其所在的位于 最下层和位于最上层的组中所有节点发送所述第。

42、一节点退出信息; 0064 本实施例中,由于上层由与相邻下层的公共节点组成,所以若一个节点位于上层, 则该节点也将位于下层;例如,若分布式集群系统包括两层,节点A位于顶层,则该节点A将 说 明 书CN 102845036 A 10 7/9页 11 同时位于底层。 0065 本实施例中,所述分布式集群系统中的第二节点可以对其所在组的成员列表中的 节点标识进行排序,并根据排序的结果确定自身是否需要加入或退出其所在组的上一层, 若所述第二节点确定需要加入所述其所在组的上一层,则所述第二节点向所加入的所述上 一层的组中所有节点发送第二节点加入信息,所述第二节点加入信息包括所述第二节点的 节点标识;或者。

43、,若所述第二节点确定需要退出所述其所在组的上一层,则所述第二节点向 所退出的所述上一层的组中所有节点发送第二节点退出信息,所述第二节点退出信息包括 所述第二节点的节点标识;作为示例而非限定,在其中一种具体的实施方式中,若分布式集 群系统包括两层,最下层称为底层,最上层称为顶层,第二节点位于底层A组,则所述第二 节点对底层A组的成员列表中的节点标识进行排序,并检测自身的节点标识是否排在所述 底层A组的成员列表的前N(N1)位,若是,且所述第二节点原来不属于顶层的成员,则所 述第二节点确定需要加入顶层,若不是,且所述第二节点原来属于顶层的成员,则所述第二 节点确定需要退出顶层; 0066 需要说明。

44、的是,所述第二节点对其所在组的成员列表中的节点标识进行排序的方 式,可以包括: 0067 所述第二节点对其所在的成员列表中的节点标识进行哈希运算,得到与所述节点 标识对应的哈希值,根据得到的哈希值大小对哈希值对应的节点标识进行排序; 0068 可选地,可以在所述第一节点加入信息中携带对所述第一节点的节点标识进行哈 希运算得到的哈希值,接收到第一节点加入信息的第二节点在保存所述第一节点的节点标 识的同时,保存与所述第一节点的节点标识对应的哈希值,以便对所述第二节点对所在组 的成员列表中的节点标识进行排序; 0069 同样地,也可以在所述第二节点加入信息中携带对所述第二节点的节点标识进行 哈希运算。

45、得到的哈希值,接收到所述第二节点加入信息的节点在保存所述第二节点的节点 标识的同时,保存与所述第二节点的节点标识对应的哈希值;其中,需要说明的是,所述第 二节点可以为所述分布式集群系统中的任一节点,所述第二节点与所述第一节点可以为同 一节点; 0070 可选地,可以在所述第二节点接收到所述第一节点加入信息并在相应组的成员列 表中保存所述第一节点的节点标识后,对相应组的成员列表中的节点标识进行排序。 0071 可选地,若所述第二节点确定需要加入其所在的组的上一层,所述第二节点可以 根据所加入的所述上一层的组的组播地址,采用组播的方式向所加入的所述上一层的组中 所有节点发送所述第二节点加入信息;若。

46、所述第二节点确定需要退出其所在组的上一层, 所述第二节点根据所退出的所述上一层的组的组播地址,采用组播的方式向所述上一层的 组中所有节点发送所述第二节点退出信息。 0072 需要说明的是,若所述第二节点确定需要加入其所在组的上一层,则接收到所述 第二节点加入信息的节点在其所在的所述上一层的组的成员列表中增加所述第二节点的 节点标识;若所述第二节点确定需要退出其所在组的上一层,则接收到所述第二节点退出 信息的节点在其所在的所述上一层的组的成员列表中删除所述第二节点的节点标识。 0073 需要说明的是,所述接收到所述第二节点加入信息的节点可以将增加后的所述上 一层的组的成员列表发送到所述第二节点,。

47、以便第二节点获知所加入的所述上一层的组的 说 明 书CN 102845036 A 11 8/9页 12 成员信息。 0074 可选地,可以在所述第二节点接收到所述第二节点加入信息并在相应组的成员列 表中保存所述第二节点的节点标识后,对相应组的成员列表中的节点标识进行排序。 0075 需要说明的是,可以在所述分布式集群系统的每个节点中配置层标识符,所述层 标识符用以标识所述每个节点所在的层。 0076 需要说明的是,本实施例将第一节点加入信息,第一节点退出信息,第二节点加入 信息以及第二节点退出信息统称为节点状态信息。 0077 本发明实施例提供的方法实施例,通过采用多层次的网络结构,将节点状态。

48、信息 的传播范围约束在不同的组内,降低了节点状态信息路由的次数,从而减少了节点状态信 息传播到分布式集群系统中每一个节点的时间;其次,通过将节点状态信息的传播范围约 束在不同的组内,减轻了对系统整体的负载;另外,该分布式集群系统可以动态地选择相邻 两层的公共节点,在原来的公共节点出现故障退出分布式集群系统时,可以重新选择相邻 两层的公共节点,提高了系统传播节点状态信息的可靠性。 0078 如图5所示,为本发明实施例提供的一种分布式集群系统示意图。为方便理解,该 示意图以三层为例。需要说明的是,所述分布式集群系统并不限定系统中的层数,该分布式 集群系统包括至少两层,上层与相邻下层之间存在公共节点。

49、,所述上层由与相邻下层的公 共节点组成,每层包括至少一个组,下层每组包括至少一个与相邻上层的公共节点,其中, 0079 当第一节点加入所述分布式集群系统时,所述第一节点用于向所加入的最下层的 组中所有节点发送第一节点加入信息,所述第一节点加入信息包括所述第一节点的节点标 识; 0080 所述第一节点所加入的最下层的组的公共节点用于接收所述第一节点加入信息, 并向所述公共节点所在的上一层的组中所有节点发送所述第一节点加入信息,以使得其它 的公共节点将所述第一节点加入信息传递至所述分布式集群系统中的所有节点。 0081 其中,需要说明的是,当所述第一节点退出所述分布式集群系统时,检测到所述第 一节点退出所述分布式集群系统的节点用于向自身所在组中所有节点发送第一节点退出 信息,所述第一节点退出信息包括所述第一节点的节点标识,直至所述第一节点加入信息 被传递至最上层中所有节点; 0082 接收到所述第一节点退出信息的最上层的节点用于向其所在的下一层的组中所 有节点。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1