一种高可用集群心跳消息重发方法

文档序号:7820547阅读:326来源:国知局
一种高可用集群心跳消息重发方法
【专利摘要】本发明公开一种高可用集群心跳消息重发方法,属于集群通信领域,当前节点收到心跳消息后,判断心跳消息是否为连续消息,在AVL树上查找该消息的源节点是否在AVL树上,若是则说明该消息是一个不连续消息,需要广播请求重发消息;若否则该消息是一个连续消息,不需要广播请求重发消息;查找AVL树上当前集群节点的不连续消息序号,根据不连续消息序号,请求当前集群节点重发丢失的消息;对于连续消息,当前集群节点直接处理该消息;本发明可以减少节点网络出现震荡时,局域网中的组播风暴,尤其是在节点出现短暂震荡后退出局域网的情况下,可以避免存活的节点无限制重发请求消息影响局域网中其他节点正常工作。
【专利说明】一种高可用集群心跳消息重发方法

【技术领域】
[0001]本发明公开一种消息重发方法,属于集群通信领域,具体地说是一种高可用集群心跳消息重发方法。

【背景技术】
[0002]集群心跳消息是集群各个节点之间互相确认是否出现故障或者停止的消息,同时当节点需要通信时,心跳消息也担任数据通信的任务。每个心跳信息中包含有一个序号,该序号表示从集群服务启动后发送的第几个序号,当节点收到不连续序号的消息时,说明有消息丢失,此时需要发送请求重发消息,请求对方节点重新发送已经丢掉的消息。现有的集群心跳消息重发是在收到一个心跳消息后,先判断是否存在不连续的消息,如果不存在则直接处理消息,如果存在不连续消息则不断在集群网络中广播请求重发消息,请求对方节点重新发送丢失序号的消息,直到收到该节点的所有连续消息。该虽然实现简单,但是当某个节点的网络出现震荡后直接出现故障停止时,会导致整个集群网络中出现大量的请求重发消息,造成网络阻塞,本发明提供一种高可用集群心跳消息重发方法,通过AVL树组织需要发送请求重发的消息,当收到心跳消息后,先在AVL树上查找该消息的源节点是否在AVL树上,如果不在则说明该消息是一个连续消息,不需要广播请求重发,如果在AVL树上查找到源节点,则说明该节点网络已经正常,再广播请求重发消息,从而减少网络阻塞。


【发明内容】

[0003]本发明针对现有技术存在的不足和问题,提供一种高可用集群心跳消息重发方法,通过该方法可以减少网络阻塞,可以减少节点网络出现震荡时,局域网中的组播风暴,尤其是在节点出现短暂震荡退出局域网的情况下,可以避免存活的节点无限制重发请求消息影响局域网中其他节点正常工作。
[0004]本发明一种高可用集群心跳消息重发方法,提出的具体方案是:
一种高可用集群心跳消息重发方法,具体步骤为:
当前节点收到心跳消息后,判断心跳消息是否为连续消息,在AVL树上查找该消息的源节点是否在AVL树上,若是则说明该消息是一个不连续消息,需要广播请求重发消息;若否则该消息是一个连续消息,不需要广播请求重发消息;
查找AVL树上当前集群节点的不连续消息序号,根据不连续消息序号,请求当前集群节点重发丢失的消息;
对于连续消息,当前集群节点直接处理该消息。
[0005]请求重发消息AVL树的节点包含集群节点名称和需要进行请求重发的消息序号。
[0006]请求重发消息AVL树的key值为集群可以收到的心跳消息的节点的名称。
[0007]是否需要发送请求重发消息的判断依据为收到了当前集群节点不连续消息且又重新收到了当前节点的发送的消息。
[0008]本发明的有益之处是:提供一种高可用集群心跳消息重发方法,通过AVL树组织需要发送请求重发的消息,当收到心跳消息后,先在AVL树上查找该消息的源节点是否在AVL树上,如果不在则说明该消息是一个连续消息,不需要广播请求重发,如果在AVL树上查找到源节点,则说明该节点网络已经正常,再广播请求重发消息,从而减少网络阻塞,可以减少节点网络出现震荡时,局域网中的组播风暴,尤其是在节点出现短暂震荡后退出局域网的情况下,可以避免存活的节点无限制重发请求消息影响局域网中其他节点正常工作。

【专利附图】

【附图说明】
[0009]图1是本发明高可用集群心跳消息重发方法的流程图。

【具体实施方式】
[0010]根据附图对本发明做进一步阐述:
实施例1
一种高可用集群心跳消息重发方法,具体步骤为:
当前节点收到心跳消息后,在AVL树上查找该消息的源节点是否在AVL树上,在AVL树上找到该消息的源节点,该消息是一个不连续消息,需要广播请求重发消息;
在AVL树上查找当前集群节点的不连续消息序号,根据该消息的不连续消息序号,可以请求当前集群节点重发丢失的消息;
请求重发消息AVL树的节点包含集群节点名称和需要进行请求重发的消息序号。
[0011]实施例2
一种高可用集群心跳消息重发方法,具体步骤为:
当前节点收到心跳消息后,在AVL树上查找该消息的源节点是否在AVL树上,没有在AVL树上找到该消息的源节点,则该消息是一个连续消息,不需要广播请求重发消息;对于连续消息,当前集群节点直接处理该消息即可。
[0012]实施例3
一种高可用集群心跳消息重发方法,具体步骤为:
当前节点收到心跳消息后,在AVL树上查找该消息的源节点是否在AVL树上,在AVL树上找到该消息的源节点,该消息是一个不连续消息,需要广播请求重发消息;
在AVL树上查找当前集群节点的不连续消息序号,根据该消息的不连续消息序号,可以请求当前集群节点重发丢失的消息;
AVL树的key值为集群可以收到的心跳消息的节点的名称,请求重发消息AVL树的节点包含集群节点名称和需要进行请求重发的序号。
[0013]实施例4
收到了当前节点不连续消息且又重新收到了当前节点的发送的消息,请求当前集群节点重发丢失的消息,在AVL树上查找该消息的源节点;
在AVL树上查找当前集群节点的不连续消息序号,根据该消息的不连续消息序号;
AVL树的key值为集群可以收到的心跳消息的节点的名称,请求重发消息AVL树的节点包含集群节点名称和需要进行请求重发的序号。
【权利要求】
1.一种高可用集群心跳消息重发方法,其特征在于具体步骤为: 当前节点收到心跳消息后,判断心跳消息是否为连续消息,在AVL树上查找该消息的源节点是否在AVL树上,若是则说明该消息是一个不连续消息,需要广播请求重发消息;若否则该消息是一个连续消息,不需要广播请求重发消息; 查找AVL树上当前集群节点的不连续消息序号,根据不连续消息序号,请求当前集群节点重发丢失的消息; 对于连续消息,当前集群节点直接处理该消息。
2.根据权利要求1所述一种高可用集群心跳消息重发方法,其特征在于请求重发消息AVL树的节点包含集群节点名称和需要进行请求重发的消息序号。
3.根据权利要求2所述一种高可用集群心跳消息重发机制,其特征在于请求重发消息AVL树的key值为集群可以收到的心跳消息的节点的名称。
4.根据权利要求1所述一种高可用集群心跳消息重发方法,其特征在于是否需要发送请求重发消息的判断依据为收到了当前集群节点不连续消息且又重新收到了当前节点的发送的消息。
【文档编号】H04L12/18GK104394004SQ201410678076
【公开日】2015年3月4日 申请日期:2014年11月24日 优先权日:2014年11月24日
【发明者】王志华, 魏显玉, 吴丙涛 申请人:浪潮电子信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1