确定被监控节点工作状态的方法、监控节点和集群系统与流程

文档序号:11842212阅读:563来源:国知局
确定被监控节点工作状态的方法、监控节点和集群系统与流程

本发明涉及通信技术领域,尤其涉及一种确定被监控节点的工作状态的方法、一种监控节点和一种包括该监控节点的分布式集群系统。



背景技术:

在分布式集群系统中,通常需要通过检测某一个节点的状态来判断该节点是否正常工作或者是否还连接在集群中等,而检测该节点的状态一般都是采用心跳消息的方式,即通过在与节点的TCP连接上定时发送规定格式的心跳包,如果该节点在预设时间内能够接收到心跳包,则认为该节点的状态为正常。

但是,目前关于预设时间的选定还没有固定的标准,多是通过经验值来确定该预设时间的长短,这样就容易导致误判节点的状态,进而影响到集群的协同工作等。

因此,在分布式集群系统中需要一种新的确定节点工作状态的方法以解决上述问题。



技术实现要素:

本发明的目的在于提供一种确定被监控节点工作状态的方法、监控节点和集群系统,在所述方法中,超时时间设置合理,以使得判断结果更加准确。

为了实现上述目的,作为本发明的一个方面,提供一种确定分布式集群系统中被监控节点的工作状态的方法,所述分布式集群系统包括监控节点和至少一个被监控节点,所述被监控节点用于向所述监控节点发送心跳包,其中,所述方法包括多个监控周期,对于任意一个监控周期所述方法包括:

确定本次监控周期的超时时间;

根据本次监控周期的超时时间确定本次监控周期中所述被监控节点的工作状态是否正常;其中,

对于第一个监控周期,确定第一个监控周期的超时时间的步骤包括将预设超时时间作为第一个监控周期的超时时间;

从第二个监控周期开始,确定本次监控周期的超时时间的步骤包括:

计算前一个监控周期中所有的相邻两个心跳包之间的时间间隔的平均值;

利用所述平均值乘以前一个监控周期中接收到所述心跳包的数量,得到参考超时时间;

根据以下公式计算所述参考超时时间和前一个监控周期的超时时间之间的差异值:

a=(Q-P)/P;

其中,a为所述差异值;

Q为所述参考超时时间;

P为前一个监控周期的超时时间;

当所述差异值位于预定区间(a1,a2)内时,将前一个监控周期的超时时间设定为本次监控周期的监控时间,当所述差异值位于所述预定区间之外时,将所述参考超时时间设置为本次监控周期的超时时间,其中,a1<1,a2>1。

优选地,所述方法还包括在确定本次监控周期的超时时间的步骤和根据本次监控周期的超时时间确定本次监控周期中所述被监控节点的工作状态是否正常的步骤之间进行的将接收到心跳包的时间记录在心跳包监控表中的步骤,包括:

每接收到一个心跳包在所述心跳包监控表中增加一行关于接收到的心跳包的记录,其中,关于接收到的心跳包的记录包括接收到所述心跳包的时间以及接收到的心跳包的时间与接收到上一个心跳包的时间之间的时间间隔;

判断所述心跳包监控表中的记录是否超过预定行数;

当所述心跳包监控表的行数超过预定行数时,删除关于本心跳包监控表中最早接收到的心跳包的记录,并继续执行所述每接收到一个心跳包在所述心跳包监控表中增加一行关于接收到的心跳包的记录的步骤;

在所述根据本次监控周期的超时时间确定本次监控周期中所述被监控节点的工作状态是否正常的步骤中,根据所述心跳包监控表中记录关于接收到的心跳包的记录判断所述被监控节点的工作状态。

优选地,每个所述监控周期包括多个观察点,任意相邻两个观察点之间的时间间隔相同;

根据本次监控周期的超时时间确定本次监控周期中所述被监控节点的工作状态是否正常的步骤包括按照时间顺序依次在各个观察点处进行的:

判断截至本观察点时,超过本观察点所处的监控周期的超时时间的间隔时间的数量在当前心跳包监控表中所有所述间隔时间中所占的比例是否超过预定比例;

当超过本次监控周期的超时时间的间隔时间的数量在当前心跳包监控表中所有所述间隔时间中所占的比例超过所述预定比例时,判定所述被监控节点的工作状态异常。

优选地,根据本次监控周期的超时时间确定本次监控周期中所述被监控节点的工作状态是否正常的步骤还包括:

当超过本次监控周期的超时时间的间隔时间的数量在当前心跳包监控表中所有所述间隔时间中所占的比例未超过所述预定比例时,判断从本观察点往前数连续预定数量个间隔时间是否逐渐增大;

当从本观察点往前数连续预定数量个间隔时间并非逐渐增大时,则继续接收心跳包,并对所述心跳包监控表执行步骤所述判断截至本观察点时超过本观察点所处的监控周期的超时时间的间隔时间的数量在当前心跳包监控表中所有所述间隔时间中所占的比例是否超过预定比例的步骤;

当从本观察点往前数连续预定数量个间隔时间逐渐增大时,清空所述心跳包监控表中所有的记录,并在清空后继续在所述心跳监控表中增加关于接收到的心跳包的记录;

判断从本观察点后与二分之一所述预定数量个时间间隔相同的时间段内是否能够接收到新的心跳包;

当从本观察点后与二分之一所述预定数量个时间间隔相同的时间段内未能接收到新的心跳包时,则判定所述被监控节点的工作状态异常。

优选地,所述根据本次监控周期的超时时间确定本次监控周期中所述被监控节点的工作状态是否正常的步骤还包括:

从本观察点后与二分之一所述预定数量个时间间隔相同的时间段内接收到新心跳包时,对经过清空后形成的心跳包监控表,按照时间顺序对各个观察点执行所述判断截至本观察点时、超过本观察点所处的监控周期的超时时间的间隔时间的数量在当前心跳包监控表中所有所述间隔时间中所占的比例是否超过预定比例的步骤。

作为本发明的另一个方面,提供一种监控节点,所述监控节点用于接收被监控节点发送的心跳包,其中,所述监控节点包括:

超时时间确定模块,所述超时时间确定模块用于确定本次监控周期的超时时间;

状态判断模块,所述状态判断模块用于根据本次监控周期的超时时间确定本次监控周期中所述被监控节点的工作状态是否正常;其中,所述超时时间确定模块包括:

预设超时时间设定单元,所述预设超时时间设定单元用于将预设超时时间作为第一个监控周期的超时时间;

平均值计算单元,所述平均值计算单元用于计算前一个监控周期中所有的相邻两个心跳包之间的时间间隔的平均值;

参考时间计算单元,所述参考时间计算单元用于利用所述平均值乘以前一个监控周期中接收到所述心跳包的数量,得到参考超时时间;

差异值计算单元,所述差异值计算单元用于根据以下公式计算所述参考超时时间和前一个监控周期的超时时间之间的差异值:

a=(Q-P)/P;

其中,a为所述差异值;

Q为所述参考超时时间;

P为前一个监控周期的超时时间;

超时时间选择单元,所述超时时间选择单元用于在当差异值位于预定区间(a1,a2)内时,将前一个监控周期的超时时间设定为本次监控周期的监控时间,并且,所述超时时间选择单元还用于在当差异值位于所述预定区间之外时,将所述参考超时时间设置为本次监控周期的超时时间,其中,a1<1,a2>1。

优选地,所述监控节点还包括心跳包监控表生成模块,所述心跳包监控表生成模块用于生成心跳包监控表,并且所述心跳包监控表生成模块包括:记录单元,所述记录单元用于每接收到一个心跳包在所述心跳包监控表中增加一行关于接收到的心跳包的记录,其中,关于接收到的心跳包的记录包括接收到所述心跳包的时间以及接收到的心跳包的时间与接收到上一个心跳包的时间之间的时间间隔;行数判断单元,所述行数判断单元用于判断所述心跳包监控表中的记录是否超过预定行数;和,删除单元,所述删除单元用于在所述心跳包监控表的行数超过预定行数时,删除关于本心跳包监控表中最早接收到的心跳包的记录;

所述状态判断模块用于根据所述心跳包监控表中记录关于接收到的心跳包的记录判断所述被监控节点的工作状态。

优选地,每个所述监控周期包括多个观察点,任意相邻两个观察点之间的时间间隔相同,所述状态判断模块包括:

错误比例确定单元,所述错误比例确定单元用于依次在各个观察点处判断超过本观察点所处的监控周期的超时时间的间隔时间的数量在当前心跳包监控表中所有所述间隔时间中所占的比例是否超过预定比例;

异常判断单元,所述异常判断单元用于在当超过本次监控周期的超时时间的间隔时间的数量在当前心跳包监控表中所有所述间隔时间中所占的比例超过所述预定比例时,判定所述被监控节点异常。

优选地,所述状态判断模块还包括:

初始错误判断单元,用于当超过本次监控周期的超时时间的间隔时间的数量在当前心跳包监控表中所有所述间隔时间中所占的比例未超过所述预定比例时,判断从本观察点往前数连续预定数量个间隔时间是否逐渐增大,并生成判断结果,且所述初始错误判断单元还能够将所述判断结果发送至所述错误比例确定单元,所述错误比例确定单元还用于在接收到所述初始错误判断单元发出的“是”的判定结果时开始运行;

清空单元,所述初始错误判断单元还用于将所述判定结果发送至所述清空单元,所述清空单元用于在接收到所述初始错误判断单元发送的“否”的判定结果时,清空所述心跳包监控表中所有的记录;

计时单元,所述计时单元用于判断从本观察点后与二分之一所述预定数量个时间间隔相同的时间段内是否能够接收到新的心跳包,并将判断结果发送至所述异常判断单元;

所述异常判断单元还用于当所述计时单元生成“是”的判定结果时,生成判定所述被监控节点的工作状态异常的判定结果;所述异常判断单元还用于当所述计时单元生成“否”的判定结果时,根据经过清空后形成的心跳包监控表判断所述被监控节点的工作状态是否正常。

作为本发明的还一个方面,提供一种集群系统,所述集群系统包括监控节点和至少一个被监控节点,其中,所述监控节点为本发明所提供的上述监控节点。

在本发明所提供的方法中,本次监控周期的错误时间是由上一个监控周期中心跳包之间的时间间隔、以及上一个监控周期的错误时间所决定的,充分考虑了网络状况对心跳包接收时间的影响,并根据该影响调节错误时间,可以使判断结果更加准确。

附图说明

附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。在附图中:

图1是本发明实施例1所提供的确定分布式集群系统中被监控节点的工作状态的方法的流程图;

图2是图1中所示的方法中,步骤S100的流程图;

图3是本发明实施例2所提供的确定分布式集群系统中被监控节点的工作状态的方法的流程图;

图4是本发明实施例4所提供的确定分布式集群系统中被监控节点的工作状态的方法的流程图;

图5是本发明所提供的监控节点的模块图。

附图标记说明

100:超时时间确定模块 110:预设超时时间设定单元

120:平均值计算单元 130:参考时间计算单元

140:差异值计算单元 150:超时时间选择单元

200:心跳包监控表生成模块 210:记录单元

220:行数判断单元 230:删除单元

300:状态判断模块 310:错误比例确定单元

320:异常判断单元 330:初始错误判断单元

340:清空单元 350:计时单元

具体实施方式

以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。

实施例1

作为本发明的一个方面,提供一种确定分布式集群系统中被监控节点的工作状态的方法,所述分布式集群系统包括监控节点和至少一个被监控节点,所述被监控节点用于向所述监控节点发送心跳包,其中,如图1所示,所述方法包括多个监控周期,对于任意一个监控周期所述方法包括:

S100、确定本次监控周期的超时时间;

S300、根据本次监控周期的超时时间确定本次监控周期中所述被监控节点的工作状态是否正常;其中,

对于第一个监控周期,确定第一个监控周期的超时时间的步骤包括将预设超时时间作为第一个监控周期的超时时间;

从第二个监控周期开始,如图2所示,确定本次监控周期的超时时间的步骤包括:

S110、计算前一个监控周期中所有的相邻两个心跳包之间的时间间隔的平均值;

S120、利用所述平均值乘以前一个监控周期中接收到所述心跳包的数量,得到参考超时时间;

S130、根据以下公式计算所述参考超时时间和前一个监控周期的超时时间之间的差异值:

a=(Q-P)/P;

其中,a为所述差异值;

Q为所述参考超时时间;

P为前一个监控周期的超时时间;

当差异值a位于预定区间(a1,a2)内时,将前一个监控周期的超时时间设定为本次监控周期的监控时间,当差异值a位于所述预定区间之外时,将所述参考超时时间设置为本次监控周期的超时时间,其中,a1<1,a2>1。

容易理解的是,被监控节点的工作状态包括正常和异常两种状态。

在本发明中,当差异值a小于a1时,则表明上一个周期的超时时间明显大于平均的心跳间隔,当差异值a大于a2时,则表明上一周期的超时时间明显小于平均的心跳间隔。利用明显大于平均的心跳间隔或者明显小于平均心跳间隔的时间作为超时时间显然是不准确的。因此,可以将平均的心跳间隔调整为本次监控周期的超时时间,从而可以提高判断的准确性。

在本发明中,当差异值a不在所述预定区间内时,说明上一个监控周期中,发生了异常。例如,当差异值a小于a1或者大于a2时,表明上一个监控周期中超时时间设置不合理,设置的过大或过小。

当a是所述预定区间(a1,a2)内的数值时,表明上一个监控周期的超时时间与上一个监控周期的平均心跳间隔相差不多,也就是说,上一个监控周期的超时时间是准确的,因此,可以利用上一个监控周期的超时时间作为本次监控周期的超时时间。

在本发明中,对a1和a2的具体数值并没有特殊的限制。例如,a1可以为0.8,a2可以为1.2。

在本发明所提供的方法中,本次监控周期的错误时间是由上一个监控周期中心跳包之间的时间间隔、以及上一个监控周期的错误时间所决定的。

在本发明所提供的方法中,充分考虑了网络状况对心跳包接收时间的影响,并根据该影响调节错误时间,可以使判断结果更加准确。

在本发明中,对所述预设超时时间并没有特殊的限定。例如,作为一种优选实施方式,可以选取相邻两个心跳包之间的理论间隔时间的100倍作为预设超时时间。

作为一种具体实施方式,相邻两个心跳包之间的理论间隔时间为3秒,那么所述预设超时时间则为300秒,也就是5分钟。

在本发明中,对如何执行步骤S300并没有特殊的限制。例如,可以直接判断相邻两个心跳包之间的间隔时间是否超过本次监控周期的超时时间。如果存在超过本次监控周期的超时时间的间隔时间,则判定被监控节点工作状态异常。如果不存在超过本次监控周期的超时时间的时间间隔,则判定在本次监控周期中,被监控节点工作正常。

本领域技术人员应当理解的是,在本次监控周期开始之前,已经按照步骤S100确定好了本次监控周期的超时时间。

实施例2

本实施例提供一种种确定分布式集群系统中被监控节点的工作状态的方法,具体,如图3所示,所述方法包括:

S100、利用实施例1中所提供的方法确定本次监控周期的超时时间;

S200、将接收到心跳包的时间记录在心跳包监控表中,具体地,如图1所示,所述步骤S200包括:

S210、每接收到一个心跳包在所述心跳包监控表中增加一行关于接收到的心跳包的记录,其中,关于接收到的心跳包的记录包括接收到所述心跳包的时间以及接收到的心跳包的时间与接收到上一个心跳包的时间之间的时间间隔;

S220、判断所述心跳包监控表的行数是否超过预定行数;

S230、当所述心跳包监控表的行数超过预定行数时,删除本心跳包监控表中最早接收到的心跳包的记录,并继续执行步骤S210。需要解释的是,删除了本心跳包监控表中最早接收到的心跳包的记录之后,所述心跳包监控表中存在空闲的行,可以用于记录随后接收到的心跳包的记录;

S300、根据本次监控周期的超时时间确定本次监控周期中所述被监控节点的工作状态是否正常。

优选地,当所述心跳包监控表的行数超过预定行数时,直接执行所述步骤S210。

本领域技术人员应当理解的是,虽然步骤S200是一个循环,但是,每记录完一次关于心跳包的记录,都要执行步骤S300。

在本实施例所提供的方法中,当接收到的心跳包的数量超过心跳包监控表所能容纳的最多值时,则把最早接收到的心跳包的记录删除,由此可知,利用本发明所提供的方法可以降低存储心跳包记录所需要的空间。

在本实施例所提供的方法中,对所述预定行数并没有特殊的限制,例如,在本发明中,对一个心跳包监控表的最大行数并没有特殊的限制。例如,可以利用利用一下公式来确定心跳包监控表的最大行数:

p=M*1.2。

其中,p为心跳包监控表的最大行数;

M为预设超时时间与相邻两个心跳包之间的理论间隔时间之商。也就是说,心跳包监控表的行数可以超过M的20%,从而可以使得监控结果更加准确。

因此,当预设超时时间为300秒、相邻两个心跳包之间的理论间隔时间为3秒时,心跳包监控表的最大行数p为120行。当然,p并不限于此,例如,p还可以为1.5M等等,这些可以根据具体的应用场合来确定。

相应地,在所述步骤S300中,根据所述心跳包监控表中记录关于接收到的心跳包的记录判断所述被监控节点的工作状态,从而降低执行本发明所提供个所述方法的工作量。

实施例3

作为本发明的一种优选实施方式,为了及时地判断所述被监控节点的工作状态、并降低监控成本,优选地,每个所述监控周期包括多个观察点,任意相邻两个观察点之间的时间间隔相同。

例如,在一个监控周期可以为5分钟的实施例中,可以在一个监控周期中设置5个观察点,相当于每隔一分钟对被监控节点的工作状态进行一次判断。相应地,本实施例所提供的方法包括以下步骤:

S100、利用实施例1中描述的步骤S100确定本次监控周期的超时时间;

S200、利用实施例2中描述的步骤S200将接收到心跳包的时间记录在心跳包监控表中;

S300、根据本次监控周期的超时时间确定本次监控周期中所述被监控节点的工作状态是否正常,包括:

按照时间顺序依次在各个观察点处进行的:

S310、判断截至本观察点时,超过本观察点所处的监控周期的超时时间的间隔时间的数量在当前心跳包监控表中所有所述间隔时间中所占的比例是否超过预定比例;

S320、当超过本次监控周期的超时时间的间隔时间的数量在当前心跳包监控表中所有所述间隔时间中所占的比例超过所述预定比例时,判定所述被监控节点异常。

在步骤S310中,当前心跳包监控表中所有所述间隔时间的数量与当前心跳包监控表中记录的所有心跳包记录的数量相同。当所述预定比例满足步骤S320中所限定的条件时,表面异常的心跳包数量较多,因此,可以直接判定所述被监控节点异常。

表1中所示的是心跳包监控表的一种示例性实施方式。

表1

在表1中,Tn下方所示的节点则为监控节点。在本发明所提供的方法中,还需要判断监控节点与上一个心跳包之间的时间间隔。

每接收到一个心跳包,即在所述心跳包监控表中增加一行,如表2所示。

通过表2中可以看出存在一个心跳间隔超过的预设的超时时间。

当然,也存在相邻两个心跳包之间的时间间隔不小于预设的超时时间的情况。如表3所示。

表3

在本发明中,对所述预定比例的具体值并没有特殊的限定。例如,所述预定比例可以为1/2。也就是说,当截止到本次观察点,超过本次观察点所处的监控周期的超时时间的时间间隔的数量占到本次观察点之前所有时间间隔的数量的1/2以上时,则可直接判定在所述被监控节点的工作状态异常。

在本申请中,当超过本次监控周期的超时时间的间隔时间的数量在所有所述间隔时间中所占的比例未超过所述预定比例(例如,小于或1/2时)时,并不代表所述被监控节点在本次监控周期中是正常的。

实施例4

为了提高监控的准确程度,本发明还提供一种优选的实施例,具体地,如图4所示,该实施例所提供的方法包括以下步骤:

S100、利用实施例1中描述的步骤S100确定本次监控周期的超时时间;

S200、利用实施例2中描述的步骤S200将接收到心跳包的时间记录在心跳包监控表中;

S300、根据本次监控周期的超时时间确定本次监控周期中所述被监控节点的工作状态是否正常,包括:

按照时间顺序依次在各个观察点处进行的:

S310、判断截至本观察点时,超过本观察点所处的监控周期的超时时间的间隔时间的数量在当前心跳包监控表中所有所述间隔时间中所占的比例是否超过预定比例;

S320、当超过本次监控周期的超时时间的间隔时间的数量在当前心跳包监控表中所有所述间隔时间中所占的比例超过所述预定比例时,判定所述被监控节点异常;

S330、当超过本次监控周期的超时时间的间隔时间的数量在所有所述间隔时间中所占的比例未超过所述预定比例(例如,小于或1/2时)时,判断从本观察点往前数连续预定数量个间隔时间是否逐渐增大;

S340、当从本观察点往前数连续预定数量个间隔时间并非逐渐增大时,则继续接收心跳包,并对所述心跳包监控表执行步骤S310;

S350、当从本观察点往前数连续预定数量个间隔时间逐渐增大时,清除所述心跳包监控表中所有的记录,并在所述心跳监控表中增加关于接收到的心跳包的记录;

S360、判断从本观察点后二分之一所述预定数量个时间间隔内是否能够接收到新的心跳包;

S370、当从本观察点后二分之一所述预定数量个时间间隔内未能接收到新的心跳包时,则判定所述被监控节点的工作状态异常;

S380、从本观察点后二分之一所述预定数量个(即,N/2个)时间间隔内接收到新心跳包时,对步骤S350中形成的心跳包监控表(即,经过清空步骤后形成的心跳包监控表),按照时间顺序对各个观察点执行步骤S310。

本观察点后二分之一所述预定数量个(即,N/2个)时间间隔内接收到新心跳包表明并没有发生丢包现象,可以根据新的心跳包监控表中的记录判断所述被监控节点的工作状态是否正常。

容易理解的是,在执行所述方法的过程中,时间是往前推移的,因此,步骤S350中形成的心跳包监控表不同于之前的心跳包监控表。

为了便于描述,用字母N表示所述预定数量。容易理解的是,预定数量N是一个常量,可以根据所述方法的具体操作环境决定,预定数量N并不会随着监控时间的变化而变化。例如,预定数量N可以为所述心跳包监控表最大行数的一半。当所述心跳包监控表最大行数为120行时,N为60。当本观察点后N/2个时间间隔内未能接收到新的心跳包,则表明可能发生了丢包现象。丢包也是被监控节点异常的一种表现方式。

实施例5

作为发明的第二个方面,提供一种监控节点,该监控节点用于执行本发明所提供的上述方法,所述监控节点用于接收被监控节点发送的心跳包,其中,如图5所示,所述监控节点包括:

超时时间确定模块100,该超时时间确定模块100用于确定本次监控周期的超时时间;

状态判断模块300,该状态判断模块300用于根据本次监控周期的超时时间确定本次监控周期中所述被监控节点的工作状态是否正常;其中,所述超时时间确定模块包括:

预设超时时间设定单元110,该预设超时时间设定单元110用于将预设超时时间作为第一个监控周期的超时时间;

平均值计算单元120,该平均值计算单元120用于计算前一个监控周期中所有的相邻两个心跳包之间的时间间隔的平均值;

参考时间计算单元130,该参考时间计算单元130用于利用所述平均值乘以前一个监控周期中接收到所述心跳包的数量,得到参考超时时间;

差异值计算单元140,该差异值计算单元140用于根据以下公式计算所述参考超时时间和前一个监控周期的超时时间之间的差异值:

a=(Q-P)/P;

其中,a为所述差异值;

Q为所述参考超时时间;

P为前一个监控周期的超时时间;

超时时间选择单元150,该超时时间选择单元150用于在当差异值a位于预定区间(a1,a2)内时,将前一个监控周期的超时时间设定为本次监控周期的监控时间,并且,所述超时时间选择单元还用于在当差异值a位于所述预定区间之外时,将所述参考超时时间设置为本次监控周期的超时时间,其中,a1<1,a2>1。

容易理解的是,超时时间确定模块100用于执行步骤S100,状态判断模块用于执行步骤S300。预设超时时间设定单元110用于在第一个监控周期执行步骤S100,平均值计算单元120用于执行步骤S110,参考时间计算单元130用于执行步骤S120,差异值计算单元用于执行步骤S130,超时时间选择单元150用于执行步骤S140。

优选地,所述监控节点还包括心跳包监控表生成模块200,该心跳包监控表生成模块200用于生成心跳包监控表,并且所述心跳包监控表生成模块包括:

记录单元210,该记录单元210用于每接收到一个心跳包在所述心跳包监控表中增加一行关于接收到的心跳包的记录,其中,关于接收到的心跳包的记录包括接收到所述心跳包的时间以及接收到的心跳包的时间与接收到上一个心跳包的时间之间的时间间隔;

行数判断单元220,该行数判断单元220用于判断所述心跳包监控表中的记录是否超过预定行数;和,

删除单元230,该删除单元230用于在所述心跳包监控表的行数超过预定行数时,删除关于本心跳包监控表中最早接收到的心跳包的记录。

状态判断模块300用于根据所述心跳包监控表中记录关于接收到的心跳包的记录判断所述被监控节点的工作状态。

优选地,每个所述监控周期包括多个观察点,任意相邻两个观察点之间的时间间隔相同,状态判断模块300包括:

错误比例确定单元310,该错误比例确定单元310用于依次在各个观察点处判断超过本观察点所处的监控周期的超时时间的间隔时间的数量在当前心跳包监控表中所有所述间隔时间中所占的比例是否超过预定比例;

异常判断单元320,该异常判断单元320用于在当超过本次监控周期的超时时间的间隔时间的数量在当前心跳包监控表中所有所述间隔时间中所占的比例超过所述预定比例时,判定所述被监控节点异常。

优选地,所述状态判断模块300还包括:

初始错误判断单元330,该初始错误判断单元用于当超过本次监控周期的超时时间的间隔时间的数量在当前心跳包监控表中所有所述间隔时间中所占的比例未超过所述预定比例时,判断从本观察点往前数连续预定数量个间隔时间是否逐渐增大,并生成判断结果,且初始错误判断单元330还能够将所述判断结果发送至所述错误比例确定单元310,该错误比例确定单元310还用于在接收到所述初始错误判断单元发出的“是”的判定结果时开始运行;

清空单元340,初始错误判断单元330还用于将所述判定结果发送至清空单元340,该清空单元用340于在接收到初始错误判断单元330发送的“否”的判定结果时,清空所述心跳包监控表中所有的记录;

计时单元350,该计时单元350用于判断从本观察点后与二分之一所述预定数量个时间间隔相同的时间段内是否能够接收到新的心跳包,并将判断结果发送至异常判断单元320。

异常判断单元320还用于当计时单元350生成“是”的判定结果时,生成判定所述被监控节点的工作状态异常的判定结果;异常判断单元350还用于当所述计时单元生成“否”的判定结果时,根据经过清空后形成的心跳包监控表判断所述被监控节点的工作状态是否正常。

作为本发明的另一个方面,提供一种集群系统,所述集群系统包括监控节点和至少一个被监控节点,其中,所述监控节点为本发明所提供的上述监控节点,所述被监控节点向所述监控节点发送心跳包。

作为本发明的一种优选实施方式,所述集群系统为分布式集群系统。

作为本发明的一种优选实施方式,所述监控节点可以为中心节点。

可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1