CN110768873A - 分布式心跳检测方法、系统、装置和计算机设备 - Google Patents
分布式心跳检测方法、系统、装置和计算机设备 Download PDFInfo
- Publication number
- CN110768873A CN110768873A CN201911056395.6A CN201911056395A CN110768873A CN 110768873 A CN110768873 A CN 110768873A CN 201911056395 A CN201911056395 A CN 201911056395A CN 110768873 A CN110768873 A CN 110768873A
- Authority
- CN
- China
- Prior art keywords
- heartbeat data
- heartbeat
- node
- monitoring node
- consumed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Environmental & Geological Engineering (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及一种分布式心跳检测方法、系统、装置、计算机设备和存储介质。所述方法包括:接收各个被监控节点定时发送的心跳数据;将所述心跳数据形成多条心跳数据队列;当接收到监控节点发送的心跳检测请求时,确定所述监控节点对应的目标心跳数据队列,并从所述目标心跳数据队列中提取出待消费心跳数据;将所述待消费心跳数据返回给所述监控节点;所述监控节点用于消费所述待消费心跳数据,以识别所述被监控节点是否存在异常。采用本方法能够减少心跳检测请求次数,减小系统与检测中心的耦合程度,从而降低系统的压力。
Description
技术领域
本申请涉及网络通信技术领域,特别是涉及一种分布式心跳检测方法、系统、装置、计算机设备和存储介质。
背景技术
心跳检测指在服务端和客户端之间进行通讯,每隔一段时间进行一次心跳检测,检测和主站连接是否正常。传统的心跳检测都是基于系统本身提供检测接口,由检测中心定时向检测接口发起请求,根据检测结果判断系统心跳是否异常。
随着网络通信技术的发展,单机系统已无法满足日益增长的计算和存储任务,因此出现了分布式系统的拓扑结构。而在将系统进行分布式架构后,单个系统存在多个业务节点,同样,检测中心进行分布式架构后,亦将存在多个监控节点。假设A系统有n个业务节点,检测中心有m个监控节点,若想保证心跳检测结果的一致性,则需要进行每个节点间的点对点请求,即需要进行n*m次请求,请求次数繁多,系统与检测中心的耦合程度较大,将给系统造成较大的压力。
因此,目前的心跳检测方法存在心跳检测请求次数繁多,系统与检测中心的耦合程度较大,造成系统压力较大的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够减少心跳检测请求次数,降低系统与检测中心的耦合程度,降低系统压力的分布式心跳检测方法、系统、装置、计算机设备和存储介质。
一种分布式心跳检测方法,所述方法包括:
接收各个被监控节点定时发送的心跳数据;
将所述心跳数据形成多条心跳数据队列;
当接收到监控节点发送的心跳检测请求时,确定所述监控节点对应的目标心跳数据队列,并从所述目标心跳数据队列中提取出待消费心跳数据;
将所述待消费心跳数据返回给所述监控节点;所述监控节点用于消费所述待消费心跳数据,以识别所述被监控节点是否存在异常。
在一个实施例中,所述将所述心跳数据形成多条心跳数据队列,包括:
创建多条空消息队列;所述空消息队列与所述监控节点相对应;
将所述心跳数据添加至所述多条空消息队列,形成所述多条心跳数据队列。
在一个实施例中,所述将所述心跳数据添加至所述多条空消息队列的步骤之前,还包括:
确定消息分发规则;
按照所述消息分发规则将所述心跳数据添加至每一条空消息队列。
在一个实施例中,所述将所述待消费心跳数据返回给所述监控节点的步骤之后,还包括:
当所述监控节点消费完成时,将所述待消费心跳数据从所述目标心跳数据队列中剔除,并从所述目标心跳数据队列中提取下一个所述待消费心跳数据。
在一个实施例中,所述方法还包括:
等待接收所述监控节点返回的消费完成的确认消息;
当接收到所述确认消息时,则判定所述监控节点消费完成。
在一个实施例中,所述方法还包括:
发送接收成功确认消息至所述被监控节点,以通知所述被监控节点所述心跳数据发送成功;所述被监控节点在未接收到所述接收成功确认消息时,则重新发送所述心跳数据。
一种分布式心跳检测系统,所述系统包括:被监控设备、中间件设备和检测中心:
所述被监控设备包括多个被监控节点;所述检测中心包括多个监控节点;
所述被监控节点,用于定时发送心跳数据至中间件设备;
所述中间件设备,用于接收各个被监控节点定时发送的心跳数据;
所述中间件设备,还用于将所述心跳数据形成多条心跳数据队列;
所述中间件设备,还用于接收所述监控节点发送的心跳检测请求,确定所述监控节点对应的目标心跳数据队列,并从所述目标心跳数据队列中提取出所述待消费心跳数据;
所述中间件设备,还用于将所述待消费心跳数据返回给所述监控节点;
所述监控节点,用于发送所述心跳检测请求至所述中间件设备;
所述监控节点,还用于消费所述待消费心跳数据,以识别所述被监控节点是否存在异常。
一种分布式心跳检测装置,所述装置包括:
接收模块,用于接收各个被监控节点定时发送的心跳数据;
形成模块,用于将所述心跳数据形成多条心跳数据队列;
提取模块,用于当接收到监控节点发送的心跳检测请求时,确定所述监控节点对应的目标心跳数据队列,并从所述目标心跳数据队列中提取出待消费心跳数据;
返回模块,用于将所述待消费心跳数据返回给所述监控节点;所述监控节点用于消费所述待消费心跳数据,以识别所述被监控节点是否存在异常。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
接收各个被监控节点定时发送的心跳数据;
将所述心跳数据形成多条心跳数据队列;
当接收到监控节点发送的心跳检测请求时,确定所述监控节点对应的目标心跳数据队列,并从所述目标心跳数据队列中提取出待消费心跳数据;
将所述待消费心跳数据返回给所述监控节点;所述监控节点用于消费所述待消费心跳数据,以识别所述被监控节点是否存在异常。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
接收各个被监控节点定时发送的心跳数据;
将所述心跳数据形成多条心跳数据队列;
当接收到监控节点发送的心跳检测请求时,确定所述监控节点对应的目标心跳数据队列,并从所述目标心跳数据队列中提取出待消费心跳数据;
将所述待消费心跳数据返回给所述监控节点;所述监控节点用于消费所述待消费心跳数据,以识别所述被监控节点是否存在异常。
上述分布式心跳检测方法、系统、装置、计算机设备和存储介质,通过构建中间件设备,以接收各个被监控节点定时发送的心跳数据,使被监控节点只需将心跳数据发送给中间件设备,实现了被监控节点只需主动向中间件设备发送心跳数据,且无需向每个监控节点都发送心跳数据;通过将所述心跳数据形成多条心跳数据队列,及监控节点与心跳数据队列的对应关系,使监控节点可以向对应的心跳数据队列发送心跳检测请求;最后当接收到监控节点发送的心跳检测请求时,从该监控节点对应的目标心跳数据队列提取出待消费心跳数据,并将待消费心跳数据返回给该监控节点进行消费,以识别被监控节点是否存在异常。实现了监控节点仅需向对应的心跳数据队列发送心跳检测请求,即可对各个被监控节点的心跳数据进行消费,从而,解决了传统方法中,监控节点需要向每个被监控节点发送心跳检测请求,请求次数繁多,系统与检测中心的耦合程度较大,造成系统压力较大的问题。
附图说明
图1为一个实施例中分布式心跳检测方法的应用场景图;
图2为一个实施例中分布式心跳检测方法的流程示意图;
图3为一个实施例中分布式心跳检测装置的结构框图;
图4为一个实施例中分布式心跳检测系统的结构框图;
图5为一个实施例中分布式心跳检测方法的应用示意图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的分布式心跳检测方法,可以应用于如图1所示的应用环境中。其中,被监控设备102通过网络与中间件设备104进行通信,中间件设备104通过网络与检测中心106进行通信。其中,被监控设备包括多个被监控节点,检测中心包括多个监控节点。其中,服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种分布式心跳检测方法,以该方法应用于图1中的中间件设备104为例进行说明,包括以下步骤:
步骤S202,接收各个被监控节点定时发送的心跳数据。
其中,被监控节点可表示产生心跳数据的节点。
其中,心跳数据可表示被监控节点与服务器的连接状态的数据。
具体实现中,被监控设备102中的各个被监控节点分别向中间件设备104定时发送心跳数据,例如,每隔5秒发送一次心跳数据,该心跳数据可以携带有节点名称标识和当前时间戳,例如带有标识node1-20190911134525的心跳数据,表示被监控节点1在2019年9月11日13时45分25秒时刻的心跳数据,中间件设备104接收各个被监控节点定时发送的心跳数据。
实际应用中,可以在中间件设备中设置消息交换器,通过消息交换器接收各个被监控节点定时发送的心跳数据。
步骤S204,将心跳数据形成多条心跳数据队列。
具体实现中,中间件设备104在接收到各个被监控节点发送的心跳数据后,可按照预设的消息分发规则,将该心跳数据分别添加至预设的多条消息队列,形成多条心跳数据队列。
实际应用中,可将中间件设备104接收的心跳数据添加至每一条消息队列,得到相同的多条心跳数据队列。
步骤S206,当接收到监控节点发送的心跳检测请求时,确定监控节点对应的目标心跳数据队列,并从目标心跳数据队列中提取出待消费心跳数据。
其中,监控节点可表示检测被监控节点连接状态的节点。
其中,心跳检测请求可表示对心跳数据队列中的心跳数据进行消费的请求。
其中,待消费心跳数据可表示心跳数据队列中等待消费的心跳数据。
具体实现中,在得到心跳数据队列后,中间件设备104便开始等待检测中心106的心跳检测请求。当接收到检测中心106中的监控节点发送的心跳检测请求后,首先确定监控节点所对应的目标心跳数据队列,其中,每个监控节点对应一个心跳数据队列。在确定目标心跳数据队列后,从目标心跳数据队列中提取出待消费心跳数据。
可选地,可通过定时投递的方法,从目标心跳数据队列中定时地提取待消费心跳数据,返回给监控节点进行消费,实现监控节点对心跳数据的异步消费。
实际应用中,在接收到监控节点发送的心跳检测请求后,可定时将心跳数据队列中的心跳数据提取出来,返回给监控节点进行消费。
步骤S208,将待消费心跳数据返回给监控节点;监控节点用于消费待消费心跳数据,以识别被监控节点是否存在异常。
具体实现中,将待消费心跳数据从目标心跳数据队列中提取出来后,将该待消费心跳数据返回给监控节点进行消费,监控节点消费该待消费心跳数据后,发送消费完成的确认信息给中间件设备104,中间件设备104接收该确认消息后,将继续从目标心跳数据队列中提取下一个待消费心跳数据给监控节点进行消费,实现监控节点对被监控节点心跳数据的不间断定时检测,以识别被监控节点是否存在异常。
实际应用中,若检测中心106识别到被监控节点存在异常时,可进行故障预警。
上述分布式心跳检测方法中,通过构建中间件设备,以接收各个被监控节点定时发送的心跳数据,使被监控节点只需将心跳数据发送给中间件设备,实现了被监控节点只需主动向中间件设备发送心跳数据,且无需向每个监控节点都发送心跳数据;通过将心跳数据形成多条心跳数据队列,及监控节点与心跳数据队列的对应关系,使监控节点可以向对应的心跳数据队列发送心跳检测请求;最后当接收到监控节点发送的心跳检测请求时,从该监控节点对应的目标心跳数据队列提取出待消费心跳数据,并将待消费心跳数据返回给该监控节点进行消费,以识别被监控节点是否存在异常。实现了监控节点仅需向对应的心跳数据队列发送心跳检测请求,即可对各个被监控节点的心跳数据进行消费,从而,本方案解决了传统方法中,监控节点需要向每个被监控节点发送心跳检测请求,请求次数繁多,使系统与检测中心的耦合程度较大,造成系统压力较大的问题。
在一个实施例中,上述步骤S204包括:创建多条空消息队列;该空消息队列与监控节点相对应;将心跳数据添加至多条空消息队列,形成多条心跳数据队列。
具体实现中,在中间件设备104中创建多条空消息队列,并且将空消息队列与监控节点相对应的进行绑定,使监控节点与空消息队列一一对应。在接收到被监控节点发送的心跳数据后,将该心跳数据添加至多条空消息队列,进而得到多条包含有心跳数据的心跳数据队列。
本实施例中,通过创建多条空消息队列,在接收到的心跳数据添加至该空消息队列,得到多条心跳数据队列,便于将被监控节点发送的心跳数据发送给监控节点,使监控节点进行消费。通过空消息队列与监控节点对应,即监控节点也设置有多个,从而实现若有一个监控节点故障,其它监控节点仍可正常运行,进一步增加了检测中心的稳定性。
在一个实施例中,上述将心跳数据添加至多条空消息队列的步骤之前,还包括:确定消息分发规则;按照消息分发规则将心跳数据添加至每一条空消息队列。
其中,消息分发规则可表示将消息发送给各个消息队列的规则。例如,消息分发规则可以为将消息分发给每个消息队列、将消息发送给指定的消息队列等规则。
具体实现中,该消息分发规则为将消息分发给每一条消息队列。在确定消息分发规则后,中间件设备104便可按照该消息分发规则,将所接收的心跳数据添加给每一条空消息队列。
本实施例中,通过将心跳数据添加至每一条空消息队列,使每一条心跳数据队列得到相同的心跳数据,以便于每个监控节点都可以对所有被监控节点的心跳数据进行消费。
在一个实施例中,上述将待消费心跳数据返回给监控节点的步骤之后,还包括:当监控节点消费完成时,将待消费心跳数据从目标心跳数据队列中剔除,并从目标心跳数据队列中提取下一个待消费心跳数据。
在一个实施例中,上述将待消费心跳数据返回给监控节点的步骤之后,还包括:等待接收监控节点返回的消费完成的确认消息;当接收到确认消息时,则判定监控节点消费完成。
具体实现中,当中间件设备104将待消费心跳数据返回给监控节点后,开始等待监控节点消费完成时将返回的确认消息,当中间件设备104接收到该确认消息后,则判定监控节点消费完成。进而,中间件设备104便可将该待消费心跳数据从目标心跳数据队列中剔除,并从目标心跳数据队列中提取出下一个待消费心跳数据。
实际应用中,将监控节点返回的消费完成的确认消息设置为自动发送,当监控节点接收到待消费心跳数据时,便向中间件设备104发送消费完成的确认消息。
本实施例中,通过设置监控节点在消费完成时,发送确认消息给中间件设备104,以通知中间件设备104发送下一个待消费心跳数据,实现了监控节点对心跳数据的不间断消费,便于检测中心106判断被监控节点是否存在异常。并且,通过消息确认机制,避免了心跳数据在检测中心的堆积,从而,减小检测中心的压力。
在一个实施例中,还包括:发送接收成功确认消息至被监控节点,以通知被监控节点心跳数据发送成功;被监控节点在未接收到接收成功确认消息时,则重新发送心跳数据。
具体实现中,当中间件设备104接收到被监控节点发送的心跳数据时,将发送接收成功确认消息给被监控节点,若被监控节点未接收到该接收成功确认消息,则判定中间件设备104未接收到该心跳数据,并将重新发送该心跳数据。并且,监控节点发送心跳数据为异步发送,下一个心跳数据的发送不受是否接收到接收成功确认消息的影响。
本实施例中,通过发送接收成功确认消息至被监控节点,可以通知被监控节点心跳数据发送成功,并且使被监控节点在未接收到接收成功确认消息时,将重新发送该心跳数据,从而,保证了心跳数据的连续性。同时,通过设置被监控节点异步发送心跳数据,提高整个心跳检测系统的吞吐量,从而提高检测效率。
应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
基于与上述实施例中的分布式心跳检测方法相同的思想,本发明还提供心跳检测装置,该装置可用于执行上述分布式心跳检测方法。为了便于说明,心跳检测装置实施例的结构示意图中,仅仅示出了与本发明实施例相关的部分,本领域技术人员可以理解,图示结构并不构成对装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
在一个实施例中,如图3所示,提供了一种分布式心跳检测装置,包括:接收模块302、形成模块304、提取模块306和返回模块308,其中:
接收模块302,用于接收各个被监控节点定时发送的心跳数据;
形成模块304,用于将心跳数据形成多条心跳数据队列;
提取模块306,用于当接收到监控节点发送的心跳检测请求时,确定监控节点对应的目标心跳数据队列,并从目标心跳数据队列中提取出待消费心跳数据;
返回模块308,用于将待消费心跳数据返回给监控节点;监控节点用于消费待消费心跳数据,以识别被监控节点是否存在异常。
在一个实施例中,上述形成模块304具体用于:创建多条空消息队列;空消息队列与监控节点相对应;将心跳数据添加至多条空消息队列,形成多条心跳数据队列。
在一个实施例中,还包括:确定消息分发规则;按照消息分发规则将心跳数据添加至每一条空消息队列。
在一个实施例中,还包括:当监控节点消费完成时,将待消费心跳数据从目标心跳数据队列中剔除,并从目标心跳数据队列中提取下一个待消费心跳数据。
在一个实施例中,还包括:等待接收监控节点返回的消费完成的确认消息;当接收到确认消息时,则判定监控节点消费完成。
在一个实施例中,还包括:发送接收成功确认消息至被监控节点,以通知被监控节点心跳数据发送成功;被监控节点在未接收到接收成功确认消息时,则重新发送心跳数据。
需要说明的是,本发明的分布式心跳检测装置与本发明的分布式心跳检测方法一一对应,在上述分布式心跳检测方法的实施例阐述的技术特征及其有益效果均适用于分布式心跳检测装置的实施例中,具体内容可参见本发明方法实施例中的叙述,此处不再赘述,特此声明。
此外,上述分布式心跳检测装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,如图4所示,提供了一种分布式心跳检测系统,包括:被监控设备402、中间件设备404和检测中心406:
被监控设备402包括多个被监控节点;检测中心406包括多个监控节点;
被监控节点,用于定时发送心跳数据至中间件设备404;
中间件设备404,用于接收各个被监控节点定时发送的心跳数据;
中间件设备404,还用于将心跳数据形成多条心跳数据队列;
中间件设备404,还用于接收监控节点发送的心跳检测请求,确定监控节点对应的目标心跳数据队列,并从目标心跳数据队列中提取出待消费心跳数据;
中间件设备404,还用于将待消费心跳数据返回给监控节点;
监控节点,用于发送心跳检测请求至中间件设备404;
监控节点,还用于消费待消费心跳数据,以识别被监控节点是否存在异常。
上述提供的分布式心跳检测系统可用于执行上述任意实施例提供的分布式心跳检测方法,具备相应的功能和有益效果。
关于分布式心跳检测系统的具体限定可以参见上文中对于分布式心跳检测方法的限定,在此不再赘述。
在一个实施例中,为了便于本领域技术人员理解本申请实施例,以下将结合附图的具体示例进行说明。参考图5,示出了一种分布式心跳检测方法的应用示意图。图中业务系统包括多个被监控节点,RabbitMQ表示中间件设备。其中,RabbitMQ中包括有消息转换器(Exchange),用于在心跳数据未分发至消息队列前,对心跳数据进行暂时存储。则将本申请的分布式心跳检测方法应用于图5的具体过程包括:
(1)业务系统的各个被监控节点定时向消息交换器发送心跳数据。该心跳数据携带有节点名称和当前时间戳,用于标识心跳数据。例如,业务系统将被监控节点的心跳数据1、被监控节点2的心跳数据2、被监控节点3的心跳数据3、至被监控节点N的心跳数据N发送至消息交换器。
(2)消息交换器在接收到这些心跳数据后,将按照消息分发规则,将心跳数据添加至每一条消息队列(Quene),即将心跳数据1、心跳数据2、心跳数据3至心跳数据N分别添加至消息队列Quene1、Quene2、Quene3至QueneM,使每条消息队列中的心跳数据相同,得到多条心跳数据队列。
(3)检测中心的监控节点1、监控节点2至监控节点M分别向对应的消息队列发送心跳检测请求,即监控节点1向消息队列Quene1发送心跳检测请求、监控节点2向消息队列Quene2发送心跳检测请求,类似地,监控节点M向消息队列QueneM发送心跳检测请求。消息队列在接收到心跳检测请求后,便将待消费心跳数据顺次提取出来,返回给对应的监控节点进行消费。监控节点消费完成后,将发送一个消费完成的确认消息给消息队列,消息队列接收该确认消息后,将提取下一个待消费心跳数据给监控节点进行消费。
(4)当监控节点对心跳数据进行消费时,可记录每一次消费的节点名称和时间信息,生成记录日志,该记录日志可用以体现被监控节点的正常时间段,便于之后进行检查。同时,在监控节点对心跳数据进行消费时,新建或刷新计时器线程。当某个被监控节点对应的计时器线程在预设时间内没有刷新时,则判定该计时器线程对应的被监控节点出现异常。
其中,当消费的心跳数据为被监控节点的第一时刻的心跳数据时,就新建一个计时器线程;若消费的心跳数据为被监控节点非第一时刻的心跳数据时,将对应的计时器线程进行刷新。
其中,每个监控节点内维护了所有被监控节点个数的计时器线程,且该计时器线程与被监控节点一一对应,计时器线程的刷新来自于对应被监控节点的心跳数据消费。
进一步地,在存在多个监控节点时,通过多数原则判定被监控节点是否异常。例如,若检测中心有3个监控节点,需至少存在2个监控节点判定被监控节点异常,则判定被监控节点心跳异常。
本实施例为分布式心跳检测方法的应用实例,具备与上述分布式心跳检测方法相应的功能和有益效果。此外,通过多数原则判断被监控节点是否异常,增加了判断被监控节点是否异常的准确性。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储心跳数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种分布式心跳检测方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
接收各个被监控节点定时发送的心跳数据;
将心跳数据形成多条心跳数据队列;
当接收到监控节点发送的心跳检测请求时,确定监控节点对应的目标心跳数据队列,并从目标心跳数据队列中提取出待消费心跳数据;
将待消费心跳数据返回给监控节点;监控节点用于消费待消费心跳数据,以识别被监控节点是否存在异常。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:创建多条空消息队列;空消息队列与监控节点相对应;将心跳数据添加至多条空消息队列,形成多条心跳数据队列。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:确定消息分发规则;
按照消息分发规则将心跳数据添加至每一条空消息队列。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当监控节点消费完成时,将待消费心跳数据从目标心跳数据队列中剔除,并从目标心跳数据队列中提取下一个待消费心跳数据。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:等待接收监控节点返回的消费完成的确认消息;当接收到确认消息时,则判定监控节点消费完成。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:发送接收成功确认消息至被监控节点,以通知被监控节点心跳数据发送成功;被监控节点在未接收到接收成功确认消息时,则重新发送心跳数据。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
接收各个被监控节点定时发送的心跳数据;
将心跳数据形成多条心跳数据队列;
当接收到监控节点发送的心跳检测请求时,确定监控节点对应的目标心跳数据队列,并从目标心跳数据队列中提取出待消费心跳数据;
将待消费心跳数据返回给监控节点;监控节点用于消费待消费心跳数据,以识别被监控节点是否存在异常。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:创建多条空消息队列;空消息队列与监控节点相对应;将心跳数据添加至多条空消息队列,形成多条心跳数据队列。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:确定消息分发规则;按照消息分发规则将心跳数据添加至每一条空消息队列。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当监控节点消费完成时,将待消费心跳数据从目标心跳数据队列中剔除,并从目标心跳数据队列中提取下一个待消费心跳数据。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:等待接收监控节点返回的消费完成的确认消息;当接收到确认消息时,则判定监控节点消费完成。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:发送接收成功确认消息至被监控节点,以通知被监控节点心跳数据发送成功;被监控节点在未接收到接收成功确认消息时,则重新发送心跳数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种分布式心跳检测方法,所述方法包括:
接收各个被监控节点定时发送的心跳数据;
将所述心跳数据形成多条心跳数据队列;
当接收到监控节点发送的心跳检测请求时,确定所述监控节点对应的目标心跳数据队列,并从所述目标心跳数据队列中提取出待消费心跳数据;
将所述待消费心跳数据返回给所述监控节点;所述监控节点用于消费所述待消费心跳数据,以识别所述被监控节点是否存在异常。
2.根据权利要求1所述的方法,其特征在于,所述将所述心跳数据形成多条心跳数据队列,包括:
创建多条空消息队列;所述空消息队列与所述监控节点相对应;
将所述心跳数据添加至所述多条空消息队列,形成所述多条心跳数据队列。
3.根据权利要求2所述的方法,其特征在于,所述将所述心跳数据添加至所述多条空消息队列的步骤之前,还包括:
确定消息分发规则;
按照所述消息分发规则将所述心跳数据添加至每一条空消息队列。
4.根据权利要求1所述的方法,其特征在于,所述将所述待消费心跳数据返回给所述监控节点的步骤之后,还包括:
当所述监控节点消费完成时,将所述待消费心跳数据从所述目标心跳数据队列中剔除,并从所述目标心跳数据队列中提取下一个所述待消费心跳数据。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
等待接收所述监控节点返回的消费完成的确认消息;
当接收到所述确认消息时,则判定所述监控节点消费完成。
6.根据权利要求1所述的方法,其特征在于,所述接收各个被监控节点发送的心跳数据的步骤之后,还包括:
发送接收成功确认消息至所述被监控节点,以通知所述被监控节点所述心跳数据发送成功;所述被监控节点在未接收到所述接收成功确认消息时,则重新发送所述心跳数据。
7.一种分布式心跳检测系统,所述系统包括:被监控设备、中间件设备和检测中心:
所述被监控设备包括多个被监控节点;所述检测中心包括多个监控节点;
所述被监控节点,用于定时发送心跳数据至中间件设备;
所述中间件设备,用于接收各个被监控节点定时发送的心跳数据;
所述中间件设备,还用于将所述心跳数据形成多条心跳数据队列;
所述中间件设备,还用于接收所述监控节点发送的心跳检测请求,确定所述监控节点对应的目标心跳数据队列,并从所述目标心跳数据队列中提取出所述待消费心跳数据;
所述中间件设备,还用于将所述待消费心跳数据返回给所述监控节点;
所述监控节点,用于发送所述心跳检测请求至所述中间件设备;
所述监控节点,还用于消费所述待消费心跳数据,以识别所述被监控节点是否存在异常。
8.一种分布式心跳检测装置,其特征在于,所述装置包括:
接收模块,用于接收各个被监控节点定时发送的心跳数据;
形成模块,用于将所述心跳数据形成多条心跳数据队列;
提取模块,用于当接收到监控节点发送的心跳检测请求时,确定所述监控节点对应的目标心跳数据队列,并从所述目标心跳数据队列中提取出待消费心跳数据;
返回模块,用于将所述待消费心跳数据返回给所述监控节点;所述监控节点用于消费所述待消费心跳数据,以识别所述被监控节点是否存在异常。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911056395.6A CN110768873B (zh) | 2019-10-31 | 2019-10-31 | 分布式心跳检测方法、系统、装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911056395.6A CN110768873B (zh) | 2019-10-31 | 2019-10-31 | 分布式心跳检测方法、系统、装置和计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110768873A true CN110768873A (zh) | 2020-02-07 |
CN110768873B CN110768873B (zh) | 2021-08-10 |
Family
ID=69335925
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911056395.6A Active CN110768873B (zh) | 2019-10-31 | 2019-10-31 | 分布式心跳检测方法、系统、装置和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110768873B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112231413A (zh) * | 2020-12-14 | 2021-01-15 | 国网汇通金财(北京)信息科技有限公司 | 分布式结果一致性的步进算法 |
CN112994988A (zh) * | 2021-05-10 | 2021-06-18 | 宁波均联智行科技股份有限公司 | 多操作系统间的心跳检测方法及车机系统 |
CN113079065A (zh) * | 2021-03-26 | 2021-07-06 | 山东英信计算机技术有限公司 | 基于Ambari的心跳检测方法、装置、设备及介质 |
CN114301812A (zh) * | 2021-12-29 | 2022-04-08 | 北京物芯科技有限责任公司 | 报文处理结果的监控方法、装置、设备以及存储介质 |
CN114666389A (zh) * | 2022-03-14 | 2022-06-24 | 京东科技信息技术有限公司 | 分布式系统中节点状态的检测方法、装置及计算机设备 |
CN114697243A (zh) * | 2020-12-25 | 2022-07-01 | 中移动信息技术有限公司 | 节点心跳处理方法、装置、系统及计算机存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104753817A (zh) * | 2013-12-25 | 2015-07-01 | 中国移动通信集团公司 | 一种云计算消息队列服务本地模拟方法和系统 |
CN106603689A (zh) * | 2016-12-26 | 2017-04-26 | 努比亚技术有限公司 | 基于分布式发布订阅消息系统的数据处理方法及装置 |
CN107197017A (zh) * | 2017-05-23 | 2017-09-22 | 努比亚技术有限公司 | 一种基于消费队列的消费方法、终端及计算机可读存储介质 |
CN110149368A (zh) * | 2019-04-19 | 2019-08-20 | 平安科技(深圳)有限公司 | 基于中间服务器的心跳包发送方法、装置和计算机设备 |
US10397085B1 (en) * | 2016-06-30 | 2019-08-27 | Juniper Networks, Inc. | Offloading heartbeat responses message processing to a kernel of a network device |
CN110351203A (zh) * | 2019-07-12 | 2019-10-18 | 苏州亿歌网络科技有限公司 | 一种消息处理方法、装置、系统、服务器及存储介质 |
-
2019
- 2019-10-31 CN CN201911056395.6A patent/CN110768873B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104753817A (zh) * | 2013-12-25 | 2015-07-01 | 中国移动通信集团公司 | 一种云计算消息队列服务本地模拟方法和系统 |
US10397085B1 (en) * | 2016-06-30 | 2019-08-27 | Juniper Networks, Inc. | Offloading heartbeat responses message processing to a kernel of a network device |
CN106603689A (zh) * | 2016-12-26 | 2017-04-26 | 努比亚技术有限公司 | 基于分布式发布订阅消息系统的数据处理方法及装置 |
CN107197017A (zh) * | 2017-05-23 | 2017-09-22 | 努比亚技术有限公司 | 一种基于消费队列的消费方法、终端及计算机可读存储介质 |
CN110149368A (zh) * | 2019-04-19 | 2019-08-20 | 平安科技(深圳)有限公司 | 基于中间服务器的心跳包发送方法、装置和计算机设备 |
CN110351203A (zh) * | 2019-07-12 | 2019-10-18 | 苏州亿歌网络科技有限公司 | 一种消息处理方法、装置、系统、服务器及存储介质 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112231413A (zh) * | 2020-12-14 | 2021-01-15 | 国网汇通金财(北京)信息科技有限公司 | 分布式结果一致性的步进算法 |
CN114697243A (zh) * | 2020-12-25 | 2022-07-01 | 中移动信息技术有限公司 | 节点心跳处理方法、装置、系统及计算机存储介质 |
CN113079065A (zh) * | 2021-03-26 | 2021-07-06 | 山东英信计算机技术有限公司 | 基于Ambari的心跳检测方法、装置、设备及介质 |
CN112994988A (zh) * | 2021-05-10 | 2021-06-18 | 宁波均联智行科技股份有限公司 | 多操作系统间的心跳检测方法及车机系统 |
CN114301812A (zh) * | 2021-12-29 | 2022-04-08 | 北京物芯科技有限责任公司 | 报文处理结果的监控方法、装置、设备以及存储介质 |
CN114666389A (zh) * | 2022-03-14 | 2022-06-24 | 京东科技信息技术有限公司 | 分布式系统中节点状态的检测方法、装置及计算机设备 |
CN114666389B (zh) * | 2022-03-14 | 2024-05-17 | 京东科技信息技术有限公司 | 分布式系统中节点状态的检测方法、装置及计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110768873B (zh) | 2021-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110768873B (zh) | 分布式心跳检测方法、系统、装置和计算机设备 | |
CN108446172B (zh) | 数据调取方法、装置、计算机设备和存储介质 | |
CN108834086B (zh) | 短信发送的方法、装置、计算机设备和存储介质 | |
CN111159233A (zh) | 分布式缓存方法、系统、计算机设备以及存储介质 | |
CN113965576B (zh) | 基于容器的大数据采集方法、装置、存储介质和设备 | |
CN111541762B (zh) | 数据处理的方法、管理服务器、设备及存储介质 | |
CN111224939B (zh) | 任务请求的拦截方法、装置、计算机设备和存储介质 | |
CN110213213B (zh) | 应用的定时任务处理方法及系统 | |
EP3031172A1 (en) | Managing data feeds | |
CN113010306A (zh) | 业务数据处理方法、装置、计算机设备和存储介质 | |
CN109857344B (zh) | 基于共享内存的心跳状态判断方法、装置和计算机设备 | |
CN111506388A (zh) | 容器性能探测方法、容器管理平台及计算机存储介质 | |
CN112132652A (zh) | 订单信息获取方法、装置、计算机设备和存储介质 | |
CN111211925A (zh) | 告警信息同步方法、装置、计算机设备和存储介质 | |
CN114567664A (zh) | 消息处理结果监控方法、装置、计算机设备和存储介质 | |
CN115643271A (zh) | 一种云上多应用数据同步方法、装置、服务器及介质 | |
CN112291299B (zh) | 基于AI Station推理平台的同步方法、装置、设备及存储介质 | |
CN114564153A (zh) | 一种卷映射解除方法、装置、设备和存储介质 | |
CN110650059B (zh) | 故障群集检测方法、装置、计算机设备和存储介质 | |
CN111047187B (zh) | 信息匹配处理方法、装置、计算机设备和存储介质 | |
CN113157493A (zh) | 基于检票系统的备份方法、装置、系统和计算机设备 | |
CN115220993A (zh) | 进程监控方法、装置、车辆及存储介质 | |
CN114172903A (zh) | slurm调度系统的节点扩容方法、装置、设备和介质 | |
CN109602413B (zh) | 心跳检测方法、装置、存储介质及服务器 | |
CN113377397A (zh) | 配置更新方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |