集群系统中节点的故障检测方法和装置制造方法及图纸

技术编号:14368796 阅读:126 留言:0更新日期:2017-01-09 14:30
本发明专利技术实施例提供一种集群系统中节点的故障检测方法和装置,该方法包括:第一节点判断在预设时间内是否接收到第二节点发送的第一心跳报文,第一节点为第二节点的邻居节点,第一心跳报文为第二节点并行地向第二节点的每一邻居节点发送的一个心跳报文;在第一节点未接收到第二节点发送的心跳报文的情况下,向第二节点的所有邻居节点中除第一节点之外的其他邻居节点发送请求消息;第一节点接收其他邻居节点发送的携带有接收状态的响应消息;在第一节点根据接收状态确定出其他邻居节点均未接收到心跳报文的情况下,第一节点确定第二节点发生故障。本发明专利技术实施例提供的集群系统中节点的故障检测方法和装置能够提高节点故障检测的效率。

【技术实现步骤摘要】

本专利技术实施例涉及通信技术,尤其涉及一种集群系统中节点的故障检测方法和装置
技术介绍
在分布式集群系统中,通常包括一个中心节点和多个普通节点,当中心节点或者普通节点发生故障后,将对分布式集群系统的可靠性造成很大的影响,因此,如何有效的进行节点的故障检测,是非常重要的。图1为现有技术中节点的故障检测方法的示意图,如图1所示,普通节点(B、C、D、E)根据心跳周期向中心节点(M)发送心跳报文,中心节点(M)根据检测周期内收到的连续心跳报文的情况,来检测普通节点是否故障,其中,一个检测周期可以包含多个心跳周期。同时,中心节点(M)也可以周期性的向普通节点(B、C、D、E)发送心跳报文,以通知普通节点中心节点所担任的角色以及是否处于正常状态,一旦普通节点(B、C、D、E)在检测周期内未收到中心节点(M)发送的心跳报文,则会判断出中心节点(M)发生故障,此时,普通节点会发起重新选举中心节点的操作,若选举成功,普通节点将感知新的中心节点,并将心跳报文发送到新的中心节点,集群再进行故障检测。然而,在现有技术中,通过判断在检测周期内是否接收到心跳报文的方式来检测节点是否发生故障时,由于在集群规模固定的情况下,发送心跳报文的心跳周期无法改变,因此检测周期的时间也无法改变,使得节点故障检测需要通过多个心跳周期才能检测出来,造成节点故障检测的周期较长,导致节点故障检测的效率较低。
技术实现思路
本专利技术实施例提供一种集群系统中节点的故障检测方法和装置,用于解决现有技术存在着的节点故障检测需要通过多个心跳周期才能检测出来,造成节点故障检测的周期较长的问题,从而提高了节点故障检测的效率。第一方面,本专利技术实施例提供一种集群系统中节点的故障检测方法,包括:第一节点判断在预设时间内是否接收到第二节点发送的第一心跳报文;所述第一节点为所述第二节点的邻居节点,所述第一心跳报文为所述第二节点并行地向所述第二节点的每一邻居节点发送的一个心跳报文,所述第二节点的所有邻居节点的数目为两个以上;所述预设时间大于或等于一个心跳周期,且小于两个心跳周期;在所述第一节点未接收到所述第二节点发送的第一心跳报文的情况下,所述第一节点向所述第二节点的所有邻居节点中除所述第一节点之外的其他邻居节点发送请求消息,所述请求消息用于询问所述其他邻居节点是否接收到所述第一心跳报文;所述第一节点接收所述其他邻居节点发送的携带有接收状态的响应消息,所述接收状态用于表示是否接收到所述第一心跳报文;在所述第一节点根据接收到的每一所述其他邻居节点发送的所述响应消息中携带的接收状态,确定出所述其他邻居节点均未接收到所述第一心跳报文的情况下,所述第一节点确定所述第二节点发生故障。结合第一方面,在第一方面的第一种可能的实现方式中,所述第一节点确定所述第二节点发生故障之后,还包括:所述第一节点生成第一投票信息,并接收每一所述其他邻居节点发送的第二投票信息,所述第一投票信息包括所述第一节点选举的节点对应的节点标识;所述第二投票信息包括发送所述第二投票信息的邻居节点选举的节点对应的节点标识;所述第一节点根据所述第一投票信息中的节点标识和每一所述其他邻居节点发送的第二投票信息中的节点标识,统计被选举的所有节点中每一节点获得的投票数量,并将投票数量最多的节点作为第三节点;所述第三节点为替代所述第二节点、且并行地向所述第三节点的所有邻居节点发送心跳报文的节点;所述第三节点的所有邻居节点包括所述第三节点自身的邻居节点和所述第二节点的邻居节点。结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,还包括:在所述第一节点根据接收到的每一所述其他邻居节点发送的所述响应消息中携带的接收状态,确定出至少一个所述其他邻居节点接收到所述第一心跳报文的情况下,所述第一节点确定未接收到所述第一心跳报文的节点与所述第二节点之间的链路发生故障;所述未接收到所述第一心跳报文的节点包括所述第一节点和所述其他邻居节点中未接收到所述第一心跳报文的节点。结合第一方面、第一方面的第一种至第一方面的第二种任一种可能的实现方式,在第一方面的第三种可能的实现方式中,还包括:所述第一节点根据所述第三节点的邻居节点和所述其他邻居节点中除所述第三节点之外的节点,重新确定所述第一节点的邻居节点。第二方面,本专利技术实施例提供一种集群系统中节点的故障检测方法,所述方法包括:第二节点并行地向第一节点和其他邻居节点发送第一心跳报文;所述第一节点为所述第二节点的邻居节点,所述其他邻居节点为所述第二节点的所有邻居节点中除所述第一节点之外的节点,所述其他邻居节点的数目为一个以上;所述第一节点判断在预设时间内是否接收到所述第一心跳报文;所述预设时间大于或等于一个心跳周期,且小于两个心跳周期;在所述第一节点未接收到所述第一心跳报文的情况下,所述第一节点向每一所述其他邻居节点分别发送请求消息,所述请求消息用于询问每一所述其他邻居节点是否接收到所述第一心跳报文;所述第一节点接收每一所述其他邻居节点发送的携带有接收状态的响应消息,所述接收状态用于表示是否接收到所述第一心跳报文;在所述第一节点根据接收到的所述响应消息中携带的接收状态,确定出所述其他邻居节点均未接收到所述第一心跳报文的情况下,所述第一节点确定所述第二节点发生故障。结合第二方面,在第二方面的第一种可能的实现方式中,所述第一节点确定所述第二节点发生故障之后,还包括:所述第一节点生成第一投票信息,并接收每一所述其他邻居节点发送的第二投票信息,所述第一投票信息包括所述第一节点选举的节点对应的节点标识;所述第二投票信息包括发送所述第二投票信息的邻居节点选举的节点对应的节点标识;所述第一节点根据所述第一投票信息中的节点标识和每一所述其他邻居节点发送的第二投票信息中的节点标识,统计被选举的所有节点中每一节点获得的投票数量,并将投票数量最多的节点作为第三节点;所述第三节点为替代所述第二节点、且并行地向所述第三节点的所有邻居节点发送心跳报文的节点;所述第三节点的所有邻居节点包括所述第三节点自身的邻居节点和所述第二节点的邻居节点。结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,还包括:在所述第一节点根据接收到的每一所述其他邻居节点发送的所述响应消息中携带的接收状态,确定出至少一个所述其他邻居节点接收到所述第一心跳报文的情况下,则所述第一节点确定未接收到所述第一心跳报文的节点与所述第二节点之间的链路发生故障;所述未接收到所述第一心跳报文的节点包括所述第一节点和所述其他邻居节点中未接收到第一心跳报文的节点。结合第二方面、第二方面的第一种至第二方面的第二种任一种可能的实现方式,在第二方面的第三种可能的实现方式中,还包括:所述第一节点根据所述第三节点的邻居节点和所述其他邻居节点中除所述第三节点之外的节点,重新确定所述第一节点的邻居节点。第三方面,本专利技术实施例提供一种集群系统中节点的故障检测装置,包括:判断模块,用于判断在预设时间内是否接收到第二节点发送的第一心跳报文;所述第一节点为所述第二节点的邻居节点,所述第一心跳报文为所述第二节点并行地向所述第二节点的每一邻居节点发送的一个心跳报文,所述第二节点的所有邻居节点的数本文档来自技高网...
集群系统中节点的故障检测方法和装置

【技术保护点】
一种集群系统中节点的故障检测方法,其特征在于,包括:第一节点判断在预设时间内是否接收到第二节点发送的第一心跳报文;所述第一节点为所述第二节点的邻居节点,所述第一心跳报文为所述第二节点并行地向所述第二节点的每一邻居节点发送的一个心跳报文,所述第二节点的所有邻居节点的数目为两个以上;所述预设时间大于或等于一个心跳周期,且小于两个心跳周期;在所述第一节点未接收到所述第二节点发送的第一心跳报文的情况下,所述第一节点向所述第二节点的所有邻居节点中除所述第一节点之外的其他邻居节点发送请求消息,所述请求消息用于询问所述其他邻居节点是否接收到所述第一心跳报文;所述第一节点接收所述其他邻居节点发送的携带有接收状态的响应消息,所述接收状态用于表示是否接收到所述第一心跳报文;在所述第一节点根据接收到的每一所述其他邻居节点发送的所述响应消息中携带的接收状态,确定出所述其他邻居节点均未接收到所述第一心跳报文的情况下,所述第一节点确定所述第二节点发生故障。

【技术特征摘要】
1.一种集群系统中节点的故障检测方法,其特征在于,包括:第一节点判断在预设时间内是否接收到第二节点发送的第一心跳报文;所述第一节点为所述第二节点的邻居节点,所述第一心跳报文为所述第二节点并行地向所述第二节点的每一邻居节点发送的一个心跳报文,所述第二节点的所有邻居节点的数目为两个以上;所述预设时间大于或等于一个心跳周期,且小于两个心跳周期;在所述第一节点未接收到所述第二节点发送的第一心跳报文的情况下,所述第一节点向所述第二节点的所有邻居节点中除所述第一节点之外的其他邻居节点发送请求消息,所述请求消息用于询问所述其他邻居节点是否接收到所述第一心跳报文;所述第一节点接收所述其他邻居节点发送的携带有接收状态的响应消息,所述接收状态用于表示是否接收到所述第一心跳报文;在所述第一节点根据接收到的每一所述其他邻居节点发送的所述响应消息中携带的接收状态,确定出所述其他邻居节点均未接收到所述第一心跳报文的情况下,所述第一节点确定所述第二节点发生故障。2.根据权利要求1所述的方法,其特征在于,所述第一节点确定所述第二节点发生故障之后,还包括:所述第一节点生成第一投票信息,并接收每一所述其他邻居节点发送的第二投票信息,所述第一投票信息包括所述第一节点选举的节点对应的节点标识;所述第二投票信息包括发送所述第二投票信息的邻居节点选举的节点对应的节点标识;所述第一节点根据所述第一投票信息中的节点标识和每一所述其他邻居节点发送的第二投票信息中的节点标识,统计被选举的所有节点中每一节点获得的投票数量,并将投票数量最多的节点作为第三节点;所述第三节点为替代所述第二节点、且并行地向所述第三节点的所有邻居节点发送心跳报文的节点;所述第三节点的所有邻居节点包括所述第三节点自身的邻居节点和所述第二节点的邻居节点。3.根据权利要求1或2所述的方法,其特征在于,还包括:在所述第一节点根据接收到的每一所述其他邻居节点发送的所述响应消
\t息中携带的接收状态,确定出至少一个所述其他邻居节点接收到所述第一心跳报文的情况下,所述第一节点确定未接收到所述第一心跳报文的节点与所述第二节点之间的链路发生故障;所述未接收到所述第一心跳报文的节点包括所述第一节点和所述其他邻居节点中未接收到所述第一心跳报文的节点。4.一种集群系统中节点的故障检测方法,其特征在于,所述方法包括:第二节点并行地向第一节点和其他邻居节点发送第一心跳报文;所述第一节点为所述第二节点的邻居节点,所述其他邻居节点为所述第二节点的所有邻居节点中除所述第一节点之外的节点,所述其他邻居节点的数目为一个以上;所述第一节点判断在预设时间内是否接收到所述第一心跳报文;所述预设时间大于或等于一个心跳周期,且小于两个心跳周期;在所述第一节点未接收到所述第一心跳报文的情况下,所述第一节点向每一所述其他邻居节点分别发送请求消息,所述请求消息用于询问每一所述其他邻居节点是否接收到所述第一心跳报文;所述第一节点接收每一所述其他邻居节点发送的携带有接收状态的响应消息,所述接收状态用于表示是否接收到所述第一心跳报文;在所述第一节点根据接收到的所述响应消息中携带的接收状态,确定出所述其他邻居节点均未接收到所述第一心跳报文的情况下,所述第一节点确定所述第二节点发生故障。5.根据权利要求4所述的方法,其特征在于,所述第一节点确定所述第二节点发生故障之后,还包括:所述第一节点生成第一投票信息,并接收每一所述其他邻居节点发送的第二投票信息,所述第一投票信息包括所述第一节点选举的节点对应的节点标识;所述第二投票信息包括发送所述第二投票信息的邻居节点选举的节点对应的节点标识;所述第一节点根据所述第一投票信息中的节点标识和每一所述其他邻居节点发送的第二投票信息中的节点标识,统计被选举的所有节点中每一节点获得的投票数量,并将投票数量最多的节点作为第三节点;所述第三节点为替代所述第二节点、且并行地向所述第三节点的所有邻居节点发送心跳报文的节点;所述第三节点的所有邻居节点包括所述第三节点自身的邻居节点和
\t所述第二节点的邻居节点。6.根据权利要求4或5所述的方法,其特征在于,还包括:在所述第一节点根据接收到的每一所述其他邻居节点发送的所述响应消息中携带的接收状态,确定出至少一个所述其他邻居节点接收到所述第一心跳报文的情况下,则所述第一节点确定未接收到所述第一心跳报文的节点与所述第二节点之间的链路发生故障;所述未接收到所述第一心跳报文的节点包括所述第一节点和所述其他邻居节点中未接收到第一心跳报文的节点。7.一种集群系统中节点的故障检测装置,其特征在于,包括:判断模块,用于判断在预设时间内接收模块是否接收到第二节点发送的第一心跳报文;所述第一节点...

【专利技术属性】
技术研发人员:胡琳伍湘平彭佩星
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1