基于N阶集群的故障节点检测方法及装置与流程
- 国知局
- 2024-08-02 14:32:06
本技术实施例涉及计算机领域,具体而言,涉及一种基于n阶集群的故障节点检测方法及装置。
背景技术:
1、在分布式系统日益普及且规模持续扩张的背景下,节点的健康状态监测已演变为保障系统稳健性与高效性能的核心环节。
2、传统的心跳检测主要是通过探测器主动轮询,或是各节点向中心节点上报心跳数据,由中心节点根据判定规则确定各节点的健康状况,而这些传统的心跳检测机制并没有充分利用各个节点,从而使得中心节点压力过大,尤其是在应对大型系统时,往往面临由于中心节点压力过大而导致效率低下、负载分布不均等问题。
3、针对上述问题,目前尚未存在有效解决方案。
技术实现思路
1、本技术实施例提供了一种基于n阶集群的故障节点检测方法及装置,以至少解决相关技术中无法充分利用集群内各个节点,导致中心节点负载压力大的问题。
2、根据本技术的一个实施例,提供了一种基于n阶集群的故障节点检测方法,包括:所述n阶集群中包括三个相互连接的n-1阶集群,所述n是大于1的整数,1阶集群中包括2m+1个节点,所述三个相互连接的n-1阶集群中位于中间的n-1阶集群为中心集群,所述中心集群两侧分别连接了一个n-1阶集群,所述中心集群内的中间节点为所述n阶集群的中心节点;所述n阶集群中相互连接的两个节点之间相互周期性的发送心跳检测信息;在预设时长第一节点未接收到第二节点发送的心跳检测信息的情况下,确定所述第二节点为故障节点,其中,所述第一节点和所述第二节点是相互连接的两个节点。
3、在一个示例性实施例中,确定所述第二节点为故障节点之后,所述方法还包括:通过与所述第一节点与所述中心节点之间连接的节点,向所述中心节点上报故障信息,其中,所述故障信息用于指示所述第二节点为故障节点;在所述中心节点接收到所述故障信息的情况下,所述中心节点将所述故障信息同步至第三节点和/或第四节点,其中,所述第三节点位于所述中心节点左侧与所述中心节点连接,所述第四节点位于所述中心节点右侧与所述中心节点连接。
4、在一个示例性实施例中,在所述确定所述第二节点为故障节点之后,所述方法还包括:所述第一节点保持周期性的向所述第二节点发送心跳检测信息,且所述第一节点保持接收所述第二节点发送的心跳检测信息;所述第一节点与第五节点之间相互周期性的发送心跳检测信息,其中,所述第二节点的一端连接于所述第一节点,另一端连接于所述第五节点。
5、在一个示例性实施例中,所述方法还包括:在所述n阶集群的中心节点为故障节点的情况下,将与所述中心节点连接的第六节点或第七节点确定为所述n阶集群的中心节点,其中,所述第六节点是位于所述中心节点左侧与所述中心节点连接的非故障节点,所述第七节点是位于所述中心节点右侧与所述中心节点连接的非故障节点;在所述n阶集群的所述中心集群中的全部节点均为故障节点的情况下,将与所述中心集群连接的第一n-1阶集群或第二n-1阶集群确定为所述n阶集群的中心集群,所述第一n-1阶集群是位于所述中心集群左侧与所述中心集群连接的非故障集群,所述第二n-1阶集群是位于所述中心集群右侧与所述中心集群连接的非故障集群,所述非故障集群中包括至少一个非故障节点;在所述第一n-1阶集群为所述n阶集群的中心集群,且所述第一n-1阶集群的中间节点是非故障节点的情况下,将所述第一n-1阶集群的中间节点确定为所述n阶集群的中心节点;在所述第二n-1阶集群为所述n阶集群的中心集群,且所述第二n-1阶集群的中间节点是非故障节点的情况下,将所述第二n-1阶集群的中间节点确定为所述n阶集群的中心节点。
6、在一个示例性实施例中,所述方法还包括:在所述n阶集群的所述中心节点接收到扩容消息的情况下,所述中心节点根据扩容消息中指示的新增节点的数量,将所述新增节点添加到所述n阶集群,得到n+1阶集群;在所述n阶集群的所述中心节点接收到缩容消息的情况下,所述中心节点根据所述缩容消息中指示删除的节点,对所述n阶集群进行缩容。
7、在一个示例性实施例中,在所述n阶集群的所述中心节点接收到扩容消息的情况下,所述中心节点根据扩容消息中指示的新增节点的数量,将所述新增节点添加到所述n阶集群,得到n+1阶集群,包括:在新增节点的数量小于所述n阶集群中节点的数量的情况下,将所述新增节点添加到所述n阶集群的尾部,得到所述n+1阶集群;在所述新增节点的数量等于所述n阶集群中节点的数量的情况下,将所述新增节点相互连接得到一个新增n阶集群,并将所述新增n阶集群添加到所述n阶集群的尾部,得到所述n+1阶集群;在所述新增节点的数量大于所述n阶集群中节点的数量,且小于两个n阶集群中节点的数量的情况下,将所述新增节点相互连接得到一个新增n阶集群,将所述新增n阶集群添加到所述n阶集群一端的尾部,所述新增节点中剩余节点添加到所述n阶集群另一端的尾部,得到所述n+1阶集群;在所述新增节点的数量等于两个n阶集群中节点的数量的情况下,将所述新增节点相互连接得到两个新增n阶集群,将两个所述新增n阶集群分别添加到所述n阶集群两端的尾部,得到所述n+1阶集群。
8、在一个示例性实施例中,所述方法还包括:所述n阶集群的所述中心节点接收查询请求,其中,所述查询请求用于请求查询所述n阶集群中目标节点的状态,所述目标节点的状态包括:故障、非故障;所述中心节点响应所述查询请求,返回所述目标节点的状态。
9、根据本技术的另一个实施例,提供了一种基于n阶集群的故障节点检测装置,应用于n阶集群中的第一节点,其中,所述n阶集群中包括三个相互连接的n-1阶集群,所述n是大于1的整数,1阶集群中包括2m+1个节点,所述三个相互连接的n-1阶集群中位于中间的n-1阶集群为中心集群,所述中心集群两侧分别连接了一个n-1阶集群,所述中心集群内的中间节点为所述n阶集群的中心节点,包括:发送模块,用于周期性的向第二节点发送心跳检测信息,其中,所述第一节点和所述第二节点是所述n阶集群中相互连接的两个节点;确定模块,用于在预设时长未接收到第二节点发送的心跳检测信息的情况下,确定所述第二节点为故障节点。
10、根据本技术的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
11、根据本技术的又一个实施例,还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
12、根据本技术的又一个实施例,还提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述任一项方法实施例中的步骤。
13、通过本技术,n阶集群中包括三个相互连接的n-1阶集群,n是大于1的整数,1阶集群中包括2m+1个节点,三个相互连接的n-1阶集群中位于中间的n-1阶集群为中心集群,中心集群两侧分别连接了一个n-1阶集群,中心集群内的中间节点为n阶集群的中心节点;n阶集群中相互连接的两个节点之间相互周期性的发送心跳检测信息;在预设时长第一节点未接收到第二节点发送的心跳检测信息的情况下,确定第二节点为故障节点,其中,第一节点和第二节点是相互连接的两个节点。
14、由于采用双向链表的方式,每个节点只需与相邻的左节点和右节点进行通信,并通过周期性的心跳检测,及时发现故障节点,因此,可以解决相关技术中无法充分利用集群内各个节点,导致中心节点负载压力大的问题,达到降低中心节点的负载压力的效果。
本文地址:https://www.jishuxx.com/zhuanli/20240801/243063.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表