一种实现心跳机制的方法、装置及系统制造方法及图纸

技术编号:15794752 阅读:146 留言:0更新日期:2017-07-10 09:45
本发明专利技术的实施例提供一种实现心跳机制的方法、装置及系统,可降低节点发送心跳响应的数量,从而减少分布式数据库系统中不必要的资源占用开销。该方案包括:交换节点获取第一节点向第二节点发送的心跳请求,该心跳请求包括该第一节点的标识和该第二节点的标识;该交换节点记录接收该心跳请求的第一时刻;该交换节点根据该第二节点的标识,在缓存信息中查询该交换节点最近一次接收到该第二节点发送消息的第二时刻,该缓存信息中存储有该交换节点接收到的任一节点发送消息的时刻与该节点的标识之间的对应关系;若该第一时刻与该第二时刻之间差值的绝对值小于阈值,则该交换节点向该第一节点发送心跳响应。

【技术实现步骤摘要】
一种实现心跳机制的方法、装置及系统
本专利技术涉及计算机
,尤其涉及一种实现心跳机制的方法、装置及系统。
技术介绍
心跳机制,是指发送端定时发送一个自定义的心跳请求(例如,心跳包或心跳帧),接收端接收到该结构体后向发送端回复心跳响应,让发送端知道接收端“在线”,以确认接收端当前可以正常工作。在分布式数据库系统中,为了提高系统的可靠性,会为数据分片保存多个副本,同一数据分片的多个副本可以分别存储在不同的节点上,存储这多个副本的一组节点可组成一个数据同步单元,为了保证这多个副本之间的数据一致性,数据同步单元内的各节点可使用同步协议(例如,raft协议)进行数据同步,在数据同步的过程中,同步协议要求数据同步单元内的各节点之间通过交换机或路由器发送心跳请求和心跳响应,来确认各节点是否可以正常工作,从而探测各节点内存储的副本是否可用。然而,随着分布式数据库系统的规模日益庞大,一个数据同步单元内节点的数量增多,因此,各节点之间发送心跳请求和心跳响应的数量显著增加,导致整个分布式数据库系统的负载增加。
技术实现思路
本专利技术的实施例提供一种实现心跳机制的方法、装置及系统,可降低节点发送心跳响应的数量,从而减少分布式数据库系统中不必要的资源占用开销。为达到上述目的,本专利技术的实施例采用如下技术方案:第一方面,本专利技术的实施例提供一种实现心跳机制的方法,应用于分布式数据库系统,包括:交换节点获取第一节点向第二节点发送的心跳请求,该心跳请求包括该第一节点的标识和该第二节点的标识,该第一节点和该第二节点为与该交换节点相连的不同节点;该交换节点记录接收该心跳请求的第一时刻;该交换节点根据该第二节点的标识,在缓存信息中查询该交换节点最近一次接收到该第二节点发送消息的第二时刻,该缓存信息中存储有该交换节点接收到的任一节点发送消息的时刻与该节点的标识之间的对应关系;若该第一时刻与该第二时刻之间差值的绝对值小于阈值,则该交换节点向该第一节点发送心跳响应。可以理解的是,由于交换节点可以实时记录N个节点中每个节点发送的消息经过交换节点的时间,这样,当第一节点向第二节点发送的心跳请求经过交换节点时,交换节点可以通过查询到最近一次接收到第二节点发送消息的时刻,进而确定出该第二节点可用,从而代替第二节点向第一节点发送心跳响应,那么,可以有效减少N个节点中每个节点接收心跳请求和发送心跳响应的次数,从而避免接收大量的心跳请求和发送大量的心跳响应占用资源。同时,当交换节点确定第二节点可用后,可直接代替第二节点向第一节点发送心跳响应,即基于本方案的心跳机制,一个完整的心跳请求和心跳响应所经历的心跳路径为:第一节点-交换节点-第一节点。而基于现有的心跳机制,一个完整的心跳请求和心跳响应所经历的心跳路径为:第一节点-交换节点-第二节点-交换节点-第一节点。可以看出,本专利技术实施例提供的实现心跳机制的方法,还可以大大降低心跳路径,减少心跳响应的延迟,从而缩短整个分布式数据库系统的故障检测时间,提高分布式数据库系统的可靠性。在一个可能的设计中,在该交换节点记录接收该心跳请求的第一时刻之后,还包括:该交换节点将该第一节点的标识与该第一时刻的对应关系存储至该缓存信息中。在一个可能的设计中,该交换节点获取第一节点向第二节点发送的心跳请求,包括:该交换节点接收该第一节点向该第二节点发送的消息,该消息携带有该第一节点的标识;该交换节点对该消息进行解析,确定该消息为该第一节点向该第二节点发送的心跳请求。在一个可能的设计中,在该交换节点接收该第一节点向该第二节点发送的消息之后,还包括:若该消息不是该第一节点向该第二节点发送的心跳请求,则该交换节点记录接收该消息的第三时刻;该交换节点将该第一节点的标识与该第三时刻的对应关系存储至该缓存信息中。在一个可能的设计中,在该交换节点根据该第二节点的标识,在缓存信息中查询该交换节点最近一次接收到该第二节点发送消息的第二时刻之后,还包括:若该第一时刻与该第二时刻之间差值的绝对值大于阈值,则该交换节点将该心跳请求转发至该第二节点。第二方面,本专利技术的实施例提供一种交换节点,应用于分布式数据库系统,该交换节点与第一节点和第二节点相连,该交换节点包括:获取单元,用于获取该第一节点向该第二节点发送的心跳请求,该心跳请求包括该第一节点的标识和该第二节点的标识;记录单元,用于记录接收该心跳请求的第一时刻;查询单元,用于根据该第二节点的标识,在缓存信息中查询该交换节点最近一次接收到该第二节点发送消息的第二时刻,该缓存信息中存储有该交换节点接收到的任一节点发送消息的时刻与该节点的标识之间的对应关系;发送单元,用于若该第一时刻与该第二时刻之间差值的绝对值小于阈值,则向该第一节点发送心跳响应。在一个可能的设计中,该交换节点还包括:存储单元,用于将该第一节点的标识与该第一时刻的对应关系存储至该缓存信息中。在一个可能的设计中,该交换节点还包括解析单元,其中,该获取单元,还用于接收该第一节点向该第二节点发送的消息,该消息携带有该第一节点的标识;该解析单元,用于对该消息进行解析,确定该消息为该第一节点向该第二节点发送的心跳请求。在一个可能的设计中,该记录单元,还用于若该消息不是该第一节点向该第二节点发送的心跳请求,则记录接收该消息的第三时刻;该存储单元,还用于将该第一节点的标识与该第三时刻的对应关系存储至该缓存信息中。在一个可能的设计中,该发送单元,还用于若该第一时刻与该第二时刻之间差值的绝对值大于阈值,则将该心跳请求转发至该第二节点。第三方面,本专利技术的实施例提供一种交换节点,包括:处理器、存储器、总线和通信接口;该存储器用于存储计算机执行指令,该处理器与该存储器通过该总线连接,当该交换节点运行时,该处理器执行该存储器存储的该计算机执行指令,以使该交换节点执行如第一方面中任意一项该的实现心跳机制的方法。第四方面,本专利技术的实施例提供一种实现心跳机制的系统,包括第二方面或第三方面中任一项该的交换节点,以及与该交换节点均相连的第一节点和第二节点。第五方面,本专利技术实施例提供了一种计算机存储介质,用于储存为上述交换节点所用的计算机软件指令,其包含用于执行上述方面为交换节点所设计的程序。本专利技术中,交换节点、第一节点以及第二节点的名字对设备或功能模块本身不构成限定,在实际实现中,这些设备或功能模块可以以其他名称出现。只要各个设备或功能模块的功能和本专利技术类似,属于本专利技术权利要求及其等同技术的范围之内。相较于现有技术,由于交换节点可以实时记录各个节点中每个节点发送的消息经过该交换节点的时间,这样,当第一节点向第二节点发送的心跳请求经过交换节点时,交换节点可以通过查询到最近一次接收到第二节点发送消息的时刻,进而确定出该第二节点可用,从而代替第二节点向第一节点发送心跳响应,那么,可以有效减少各个节点接收心跳请求和发送心跳响应的次数,从而避免接收大量的心跳请求和发送大量的心跳响应占用资源。本专利技术的这些方面或其他方面在以下实施例的描述中会更加简明易懂。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。图1为本专利技术实施例提供的分布式数据库系统的架构图;图2为本专利技术实施例提供的一种实现心跳机制的方法本文档来自技高网...
一种实现心跳机制的方法、装置及系统

【技术保护点】
一种实现心跳机制的方法,应用于分布式数据库系统,其特征在于,包括:交换节点获取第一节点向第二节点发送的心跳请求,所述心跳请求包括所述第一节点的标识和所述第二节点的标识,所述第一节点和所述第二节点为与所述交换节点相连的不同节点;所述交换节点记录接收所述心跳请求的第一时刻;所述交换节点根据所述第二节点的标识,在缓存信息中查询所述交换节点最近一次接收到所述第二节点发送消息的第二时刻,所述缓存信息中存储有所述交换节点接收到的任一节点发送消息的时刻与该节点的标识之间的对应关系;若所述第一时刻与所述第二时刻之间差值的绝对值小于阈值,则所述交换节点向所述第一节点发送心跳响应。

【技术特征摘要】
1.一种实现心跳机制的方法,应用于分布式数据库系统,其特征在于,包括:交换节点获取第一节点向第二节点发送的心跳请求,所述心跳请求包括所述第一节点的标识和所述第二节点的标识,所述第一节点和所述第二节点为与所述交换节点相连的不同节点;所述交换节点记录接收所述心跳请求的第一时刻;所述交换节点根据所述第二节点的标识,在缓存信息中查询所述交换节点最近一次接收到所述第二节点发送消息的第二时刻,所述缓存信息中存储有所述交换节点接收到的任一节点发送消息的时刻与该节点的标识之间的对应关系;若所述第一时刻与所述第二时刻之间差值的绝对值小于阈值,则所述交换节点向所述第一节点发送心跳响应。2.根据权利要求1所述的方法,其特征在于,在所述交换节点记录接收所述心跳请求的第一时刻之后,还包括:所述交换节点将所述第一节点的标识与所述第一时刻的对应关系存储至所述缓存信息中。3.根据权利要求1或2所述的方法,其特征在于,所述交换节点获取第一节点向第二节点发送的心跳请求,包括:所述交换节点接收所述第一节点向所述第二节点发送的消息,所述消息携带有所述第一节点的标识;所述交换节点对所述消息进行解析,确定所述消息为所述第一节点向所述第二节点发送的心跳请求。4.根据权利要求3所述的方法,其特征在于,在所述交换节点接收所述第一节点向所述第二节点发送的消息之后,还包括:若所述消息不是所述第一节点向所述第二节点发送的心跳请求,则所述交换节点记录接收所述消息的第三时刻;所述交换节点将所述第一节点的标识与所述第三时刻的对应关系存储至所述缓存信息中。5.根据权利要求1-4中任一项所述的方法,其特征在于,在所述交换节点根据所述第二节点的标识,在缓存信息中查询所述交换节点最近一次接收到所述第二节点发送消息的第二时刻之后,还包括:若所述第一时刻与所述第二时刻之间差值的绝对值大于阈值,则所述交换节点将所述心跳请求转发至所述第二节点。6.一种交换节点,应用于分布式数据库系统,其特征在于,所述交换节点与第一节点和第二节点相连,...

【专利技术属性】
技术研发人员:智雅楠程伟
申请(专利权)人:杭州华为数字技术有限公司
类型:发明
国别省市:浙江,33

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

1