1.一种确定分布式集群系统中被监控节点的工作状态的方法,所述分布式集群系统包括监控节点和至少一个被监控节点,所述被监控节点用于向所述监控节点发送心跳包,其特征在于,所述方法包括多个监控周期,对于任意一个监控周期所述方法包括:
确定本次监控周期的超时时间;
根据本次监控周期的超时时间确定本次监控周期中所述被监控节点的工作状态是否正常;其中,
对于第一个监控周期,确定第一个监控周期的超时时间的步骤包括将预设超时时间作为第一个监控周期的超时时间;
从第二个监控周期开始,确定本次监控周期的超时时间的步骤包括:
计算前一个监控周期中所有的相邻两个心跳包之间的时间间隔的平均值;
利用所述平均值乘以前一个监控周期中接收到所述心跳包的数量,得到参考超时时间;
根据以下公式计算所述参考超时时间和前一个监控周期的超时时间之间的差异值:
a=(Q-P)/P;
其中,a为所述差异值;
Q为所述参考超时时间;
P为前一个监控周期的超时时间;
当所述差异值位于预定区间(a1,a2)内时,将前一个监控周期的超时时间设定为本次监控周期的监控时间,当所述差异值位于所述预定区间之外时,将所述参考超时时间设置为本次监控周期的超时时间,其中,a1<1,a2>1。
2.根据权利要求1所述的方法,其特征在于,
所述方法还包括在确定本次监控周期的超时时间的步骤和根据本次监控周期的超时时间确定本次监控周期中所述被监控节点的工作状态是否正常的步骤之间进行的将接收到心跳包的时间记录在心跳包监控表中的步骤,包括:
每接收到一个心跳包在所述心跳包监控表中增加一行关于接收到的心跳包的记录,其中,关于接收到的心跳包的记录包括接收到所述心跳包的时间以及接收到的心跳包的时间与接收到上一个心跳包的时间之间的时间间隔;
判断所述心跳包监控表中的记录是否超过预定行数;
当所述心跳包监控表的行数超过预定行数时,删除关于本心跳包监控表中最早接收到的心跳包的记录,并继续执行所述每接收到一个心跳包在所述心跳包监控表中增加一行关于接收到的心跳包的记录的步骤;
在所述根据本次监控周期的超时时间确定本次监控周期中所述被监控节点的工作状态是否正常的步骤中,根据所述心跳包监控表中记录关于接收到的心跳包的记录判断所述被监控节点的工作状态。
3.根据权利要求2所述的方法,其特征在于,每个所述监控周期包括多个观察点,任意相邻两个观察点之间的时间间隔相同;
根据本次监控周期的超时时间确定本次监控周期中所述被监控节点的工作状态是否正常的步骤包括按照时间顺序依次在各个观察点处进行的:
判断截至本观察点时,超过本观察点所处的监控周期的超时时间的间隔时间的数量在当前心跳包监控表中所有所述间隔时间中所占的比例是否超过预定比例;
当超过本次监控周期的超时时间的间隔时间的数量在当前心跳包监控表中所有所述间隔时间中所占的比例超过所述预定比例时,判定所述被监控节点的工作状态异常。
4.根据权利要求3所述的方法,其特征在于,根据本次监控周期的超时时间确定本次监控周期中所述被监控节点的工作状态是否正常的步骤还包括:
当超过本次监控周期的超时时间的间隔时间的数量在当前心跳包监控表中所有所述间隔时间中所占的比例未超过所述预定比例时,判断从本观察点往前数连续预定数量个间隔时间是否逐渐增大;
当从本观察点往前数连续预定数量个间隔时间并非逐渐增大时,则继续接收心跳包,并对所述心跳包监控表执行步骤所述判断截至本观察点时超过本观察点所处的监控周期的超时时间的间隔时间的数量在当前心跳包监控表中所有所述间隔时间中所占的比例是否超过预定比例的步骤;
当从本观察点往前数连续预定数量个间隔时间逐渐增大时,清空所述心跳包监控表中所有的记录,并在清空后继续在所述心跳监控表中增加关于接收到的心跳包的记录;
判断从本观察点后与二分之一所述预定数量个时间间隔相同的时间段内是否能够接收到新的心跳包;
当从本观察点后与二分之一所述预定数量个时间间隔相同的时间段内未能接收到新的心跳包时,则判定所述被监控节点的工作状态异常。
5.根据权利要求4所述的方法,其特征在于,所述根据本次监控周期的超时时间确定本次监控周期中所述被监控节点的工作状态是否正常的步骤还包括:
从本观察点后与二分之一所述预定数量个时间间隔相同的时间段内接收到新心跳包时,对经过清空后形成的心跳包监控表,按照时间顺序对各个观察点执行所述判断截至本观察点时、超过本观察点所处的监控周期的超时时间的间隔时间的数量在当前心跳包监控表中所有所述间隔时间中所占的比例是否超过预定比例的步骤。
6.一种监控节点,所述监控节点用于接收被监控节点发送的心跳包,其特征在于,所述监控节点包括:
超时时间确定模块,所述超时时间确定模块用于确定本次监控周期的超时时间;
状态判断模块,所述状态判断模块用于根据本次监控周期的超时时间确定本次监控周期中所述被监控节点的工作状态是否正常;其中,所述超时时间确定模块包括:
预设超时时间设定单元,所述预设超时时间设定单元用于将预设超时时间作为第一个监控周期的超时时间;
平均值计算单元,所述平均值计算单元用于计算前一个监控周期中所有的相邻两个心跳包之间的时间间隔的平均值;
参考时间计算单元,所述参考时间计算单元用于利用所述平均值乘以前一个监控周期中接收到所述心跳包的数量,得到参考超时时间;
差异值计算单元,所述差异值计算单元用于根据以下公式计算所述参考超时时间和前一个监控周期的超时时间之间的差异值:
a=(Q-P)/P;
其中,a为所述差异值;
Q为所述参考超时时间;
P为前一个监控周期的超时时间;
超时时间选择单元,所述超时时间选择单元用于在当a位于预定区间(a1,a2)内时,将前一个监控周期的超时时间设定为本次监控周期的监控时间,并且,所述超时时间选择单元还用于在当a位于所述预定区间之外时,将所述参考超时时间设置为本次监控周期的超时时间,其中,a1<1,a2>1。
7.根据权利要求6所述的监控节点,其特征在于,所述监控节点还包括心跳包监控表生成模块,所述心跳包监控表生成模块用于生成心跳包监控表,并且所述心跳包监控表生成模块包括:记录单元,所述记录单元用于每接收到一个心跳包在所述心跳包监控表中增加一行关于接收到的心跳包的记录,其中,关于接收到的心跳包的记录包括接收到所述心跳包的时间以及接收到的心跳包的时间与接收到上一个心跳包的时间之间的时间间隔;行数判断单元,所述行数判断单元用于判断所述心跳包监控表中的记录是否超过预定行数;和,删除单元,所述删除单元用于在所述心跳包监控表的行数超过预定行数时,删除关于本心跳包监控表中最早接收到的心跳包的记录;
所述状态判断模块用于根据所述心跳包监控表中记录关于接收到的心跳包的记录判断所述被监控节点的工作状态。
8.根据权利要求7所述的监控节点,其特征在于,每个所述监控周期包括多个观察点,任意相邻两个观察点之间的时间间隔相同,所述状态判断模块包括:
错误比例确定单元,所述错误比例确定单元用于依次在各个观察点处判断超过本观察点所处的监控周期的超时时间的间隔时间的数量在当前心跳包监控表中所有所述间隔时间中所占的比例是否超过预定比例;
异常判断单元,所述异常判断单元用于在当超过本次监控周期的超时时间的间隔时间的数量在当前心跳包监控表中所有所述间隔时间中所占的比例超过所述预定比例时,判定所述被监控节点异常。
9.根据权利要求8所述的监控节点,其特征在于,所述状态判断模块还包括:
初始错误判断单元,用于当超过本次监控周期的超时时间的间隔时间的数量在当前心跳包监控表中所有所述间隔时间中所占的比例未超过所述预定比例时,判断从本观察点往前数连续预定数量个间隔时间是否逐渐增大,并生成判断结果,且所述初始错误判断单元还能够将所述判断结果发送至所述错误比例确定单元,所述错误比例确定单元还用于在接收到所述初始错误判断单元发出的“是”的判定结果时开始运行;
清空单元,所述初始错误判断单元还用于将所述判定结果发送至所述清空单元,所述清空单元用于在接收到所述初始错误判断单元发送的“否”的判定结果时,清空所述心跳包监控表中所有的记录;
计时单元,所述计时单元用于判断从本观察点后与二分之一所述预定数量个时间间隔相同的时间段内是否能够接收到新的心跳包,并将判断结果发送至所述异常判断单元;
所述异常判断单元还用于当所述计时单元生成“是”的判定结果时,生成判定所述被监控节点的工作状态异常的判定结果;所述异常判断单元还用于当所述计时单元生成“否”的判定结果时,根据经过清空后形成的心跳包监控表判断所述被监控节点的工作状态是否正常。
10.一种集群系统,所述集群系统包括监控节点和至少一个被监控节点,其特征在于,所述监控节点为权利要求6至9中任意一项所述的监控节点。