一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种节点之间心跳处理方法及装置与流程

2021-11-05 22:20:00 来源:中国专利 TAG:


1.本技术涉及心跳处理方法领域,尤其涉及一种节点之间心跳处理方法及装置。


背景技术:

2.心跳机制是一个节点定时发送一个自定义的数据结构的心跳包给另一节点,通过心跳包的发送接收以确保两个节点之间连接的有效性的机制。
3.在服务器管理过程中,通常会配置监控多个客户节点的主控节点。主控节点要同时监控多个客户节点的实时状态,就需要通过心跳方式及时与客户节点联系,掌握客户节点是否在线。在主控节点连接的客户节点较少时,心跳包量少,主控节点甚至能够在同一时刻处理全部客户节点的心跳请求;但是一旦主控节点连接的客户节点数量大到一定规模,客户节点的心跳请求不受控制发送给主控节点的话,可能造成周期性的数据风暴,给主控节点带来周期性压力,影响主要业务的处理速度,甚至会由此造成主控节点程序系统故障进而引发宕机。


技术实现要素:

4.为了解决上述技术问题或者至少部分地解决上述技术问题,本技术提供的节点之间心跳处理方法及装置。
5.第一方面本技术提供一种节点之间心跳处理方法,应用于连接大量客户节点的主控节点,所述节点之间心跳处理方法包括:
6.构建包括客户节点识别号、客户节点是否在线以及信用分数的客户节点数据模型;
7.根据所述信用分数计算每个客户节点的心跳间隔时间,进而根据心跳间隔时间确定客户节点的第一心跳预期;
8.确保每个第一时间周期内统计的心跳量小于设定心跳量阈值的情况下,重新编排所述第一心跳预期获取客户节点的第二心跳预期;
9.按所述第二心跳预期使相应的客户节点向主控节点发送心跳请求;
10.统计未发送心跳请求的客户节点,根据统计结果更新相应的客户节点的客户节点是否在线和信用分数。
11.更进一步地,在主控节点配置客户节点资源池,所述客户节点资源池存储主控节点所连接的客户节点的客户节点数据模型。
12.更进一步地,根据所述信用分数计算每个客户节点的心跳间隔时间,进而根据心跳间隔时间确定客户节点的第一心跳预期包括:
13.设定一个标准时间,定义一个标准分值,所述标准分值大于等于初始的信用分数值;
14.从客户节点数据模型获取相应客户节点的信用分数;
15.计算每个客户节点的心跳间隔时间,公式如下:
[0016][0017]
将客户节点上次心跳时刻加上计算的每个客户节点的心跳间隔时间获取客户节点的第一心跳预期。
[0018]
更进一步地,确保每个第一时间周期内统计的心跳量小于设定心跳量阈值的情况下,重新编排所述第一心跳预期以获取客户节点的第二心跳预期包括:
[0019]
根据心跳间隔时间的浮动范围来设定一个第一时间周期;
[0020]
根据主控节点的性能设定一个表示第一时间周期内允许的最大心跳量的心跳量阈值;
[0021]
按设定的第一时间周期进行心跳量统计;
[0022]
判断统计的心跳量是否大于所述心跳量阈值;
[0023]
是则以心跳量减去心跳量阈值获取超出量;
[0024]
从该第一时间周期统计的客户节点中选取所述超出量个客户节点;
[0025]
将选取的客户节点的第一心跳预期自加所述第一时间周期;
[0026]
否则对下一个第一时间周期进行心跳量统计;
[0027]
迭代编排全部客户节点的第一心跳预期获取相应的第二心跳预期。
[0028]
更进一步地,选取所述超出量个客户节点包括:
[0029]
将全部客户节点的按照相应第一心跳预期的先后排序;
[0030]
以第一时间周期为步长,统计每个第一时间周期内的客户节点;
[0031]
定义一个计数变量,所述计数变量用于对所述第一时间周期进行计数;
[0032]
当某第一时间周期对应的计数变量为偶数时,从该第一时间周期中排序靠前的客户节点中选取超出量个客户节点;
[0033]
当某第一时间周期对应的计数变量为奇数时,从该第一时间周期中排序靠后的客户节点中选取超出量个客户节点。
[0034]
更进一步地,在所述主控节点配置一个用于主动联系客户节点的触发进程,触发进程向相应客户节点发送主控节点的当前时钟和第二心跳预期,所述客户节点根据主控节点的当前时钟校正自身时钟,所述客户节点按照第二心跳预期向所述主控节点发送心跳请求。
[0035]
更进一步地,客户节点数据模型还包括违约参数;所述违约参数记录该客户节点违约次数以及违约时刻。
[0036]
更进一步地,客户节点发送心跳请求,将客户节点是否在线的参数设置为在线,客户节点未发送心跳请求,将客户节点是否在线的参数设置为不在线;
[0037]
当前的信用分数等于初始的信用分数减去当前违约次数。
[0038]
更进一步地,设定违约密度阈值,统计设定预期心跳次数内违约次数,计算违约次数的占比并判断违约次数占比是否大于所述违约密度阈值,是则生成相应的警报信息。
[0039]
第二方面本技术提供一种实现节点之间心跳处理方法的装置。所述实现节点之间心跳处理方法的装置包括主控节点和客户节点,所述主控节点包括由第一总线单元连接的第一控制单元、第一存储单元和第一接口单元;所述客户节点包括由第二总线单元连接的第二控制单元、第一存储单元和第二接口单元,所述第一接口单元连接所述第二接口单元;
[0040]
所述第一存储单元存储至少一条第一指令,所述第一控制单元执行所述第一指令实现所述的节点之间心跳处理方法;所述第二存储单元存储至少一条第二指令,所述第二控制单元执行所述第二指令实现向所述主控节点发送心跳请求。
[0041]
本技术实施例提供的上述技术方案与现有技术相比具有如下优点:
[0042]
本技术提供的节点之间心跳处理方法利用标准分数减去客户节点信用分数取自然对数,然后再由标准时间来除以所得自然对数的值来计算客户节点的心跳间隔时间,使得信用分数低的客户节点的心跳请求频率相比信用分数高的客户节点的心跳请求频率更高;通过提高信用分数低的客户节点的心跳频率实现对不可靠客户节点投入更多关注。
[0043]
本技术在确保每个第一时间周期内心跳量小于设定心跳量阈值的情况下,编排根据心跳间隔时间计算的第一心跳预期形成第二心跳预期;客户节点按照第二心跳预期向主控节点发送心跳请求时,每个第一时间周期内的心跳请求不超过心跳量阈值,从而避免心跳请求集中导致主控节点业务执行效率低、甚至崩溃宕机的情况。
[0044]
本技术在编排第一心跳预期形成第二心跳预期时,选取超出量个客户节点的第一心跳预期自加所述第一时间周期,从而将当前第一时间周期内超出量的客户节点的第一心跳预期顺延到后面一个第一时间周期内。实现一个第一时间周期内心跳量小于设定心跳量阈值。
[0045]
本技术在选取超出量的客户节点时,根据第一时间周期的计数的奇偶选取不同的超出量客户节点策略,实现一个第一时间周期若选取排序靠前的客户节点,那么下一第一时间周期选取排序靠后的客户节点。避免当前第一时间周期内选作超出量的客户节点在下一第一时间周期内仍被选作超出量的情况。避免出现客户节点重复顺延多次的情况。
[0046]
本技术通过还能在客户节点连续违约的情况下生成相应的报警信息,方便运维人员及时处理维护不可靠的客户节点。
附图说明
[0047]
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
[0048]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0049]
图1为本技术实施例提供的节点之间心跳处理方法的流程图;
[0050]
图2为本技术实施例提供的节点之间心跳处理方法生成第一心跳预期的流程图;
[0051]
图3为本技术实施例提供的节点之间心跳处理方法迭代编排第一心跳形成第二心跳预期的流程图;
[0052]
图4为本实施例提供的节点之间心跳处理方法以客户节点数据模型保存统计客户节点心跳结果的流程图;
[0053]
图5为本技术实施例提供的实现节点之间心跳处理方法的装置示意图。
具体实施方式
[0054]
为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例
中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
[0055]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0056]
服务器管理软件需要主控节点同时监控多个客户节点的实时状态,主控节点与客户节点之间接收和发送数据都是通过套接字实现的,一旦主控节点和客户节点之间套接字已经断开,那么发送数据和接收数据的时候就会出现问题。导致服务器管理软件所监控的客户节点缺失。现有技术中通过主控节点和客户节点的心跳机制来确保主控节点和客户节点之间的长久连接。在控制节点连接的客户节点数量超过一定量时,若不对客户节点与控制节点之间的心跳机制进行控制,则可能出现心跳请求短时间内集中发送到主控节点的情况,使得主控节点不堪重负。为解决上述问题,本技术提供一种节点之间心跳处理方法及装置来均衡心跳请求发送的时刻。
[0057]
实施例1
[0058]
本技术实施例提供一种节点之间心跳处理方法,应用于连接大量客户节点的主控节点,参阅图1所示,所述节点之间心跳处理方法包括:
[0059]
s100,构建包括客户节点识别号、客户节点是否在线以及信用分数的客户节点数据模型;具体实施过程中,在控制节点构建一个客户节点资源池,所述客户节点资源池存储主控节点所连接的客户节点的客户节点数据模型。具体的,所述客户节点识别号为对应客户节点的唯一的编号,用于区分不同的客户节点;所述客户节点是否在线用布尔数据表示,真表示在线,假表示不在线,初始值为假;所述信用分数为一个变量,当前的信用分数等于初始的信用分数减去当前违约次数,违约次数指客户节点未按照预期向主控节点发送心跳请求的次数,本实施例中初始的信用分数值设置为一个与标准分值相关的常数。
[0060]
s200,根据所述信用分数计算每个客户节点的心跳间隔时间,进而根据心跳间隔时间确定客户节点的第一心跳预期;
[0061]
具体实施过程中,在主控节点配置一个编排引擎,所述编排引擎从所述客户节点资源池获取每个客户节点的信用分数,计算每个客户节点的心跳间隔时间,进而确定每个客户节点的第一心跳预期,参阅图2所示,过程包括:
[0062]
预先设定一个用于计算心跳间隔的标准时间,预先定义一个标准分值,所述标准分值大于等于初始的信用分数值;更进一步地,通过限制标准分值和初始的信用分数的取值范围来限定心跳间隔时间的浮动范围。
[0063]
s201,所述编排引擎从所述客户节点资源池的客户节点数据模型获取相应客户节点的信用分数;
[0064]
s202,所述编排引擎按照公式如下计算每个客户节点的心跳间隔时间:
[0065]
[0066]
s203,所述编排引擎将客户节点上次心跳时刻加上计算的每个客户节点的心跳间隔时间获得客户节点的第一心跳预期。
[0067]
所述编排引擎将每个客户节点的第一心跳预期暂存。
[0068]
s300,确保每个第一时间周期内统计的心跳量小于设定心跳量阈值的情况下,重新编排所述第一心跳预期获取客户节点的第二心跳预期;
[0069]
所述编排引擎继续对客户节点的第一心跳预期编排获取第二心跳预期,全部的客户节点按照各自的第二心跳预期向主控节点发送心跳请求时,满足在每个第一时间周期内心跳请求数量小于设定的心跳量阈值。参阅图3所示,过程包括:
[0070]
预先设定一个第一时间周期;所述第一时间周期的取值小于所限定的心跳间隔时间浮动范围上限和下限的差且小于心跳间隔时间浮动范围的下限。
[0071]
预先根据主控节点的性能设定一个表示第一时间周期内允许的最大心跳量的心跳量阈值。
[0072]
s301,按照客户节点的第一心跳预期时间先后顺序排列客户节点,以所述第一时间周期为步长对客户节点进行统计;
[0073]
s302,统计当前第一时间周期内的客户节点以及当前第一时间周期内的客户节点数量;
[0074]
具体实施过程中,构建一个预期池,所述预期池按时间顺序排列若干客户节点集合,所述客户节点集合中记录相应的第一时间周期内的客户节点。
[0075]
s303,判断统计的心跳量是否大于所述心跳量阈值;是则执行步骤s304。否则执行步骤s307。具体实施过程中,从所述预期池中一个客户节点集合开始,获取该客户节点集合的客户节点数量作为统计的心跳量,比较统计的心跳量是否大于所述心跳量阈值。
[0076]
s304,以心跳量减去心跳量阈值获取超出量;具体实施过程中,从当前的客户节点集合中客户节点数量(心跳量)减去所述心跳量阈值获取超出量。
[0077]
s305,从当前第一时间周期统计的客户节点中选取所述超出量个客户节点;具体实施过程中,选取所述超出量个客户节点包括:
[0078]
定义一个计数变量对第一时间周期进行计数;
[0079]
当某第一时间周期对应的计数变量为偶数时,从当前第一时间周期中排序靠前的客户节点中选取超出量个客户节点,限定选取的超出量个客户节点在下一第一时间周期中不存在。具体实施过程中,从所述预期池当前客户节点集合中排序考前的客户节点中选出超出量个客户节点,限定选取的超出量个客户节点在下一客户节点集合中不存在。
[0080]
当某第一时间周期对应的计数变量为奇数时,从当前第一时间周期中排序靠后的客户节点中选取超出量个客户节点,限定选取的超出量个客户节点在下一第一时间周期中不存在。具体实施过程中,从所述预期池当前客户节点集合中排序考后的客户节点中选取超出量个客户节点,限定选取的超出量个客户节点在下一客户节点集合中不存在。
[0081]
通过以下过程限定选取的超出量个客户节点在下一客户节点不存在:
[0082]
获取下一客户节点集合中的客户节点;
[0083]
从当前客户节点集合取一个客户节点与获取的下一客户节点集合中的客户节点对照,判断取出的客户节点是否在下一客户节点集合中存在;
[0084]
是则顺延取当前客户节点集合中下一个客户节点为取出的客户节点,直至取出数
量达到超出量。
[0085]
s306,将选取的客户节点的第一心跳预期自加所述第一时间周期;具体实施过程中被选出的客户节点的第一心跳预期自加所述第一时间周期后,会从预期池当前的客户节点集合中移动到下一客户节点集合中。
[0086]
s307,当前第一时间周期自加一移动到下一个第一时间周期,循环执行步骤s302。
[0087]
通过步骤s303到步骤s307的迭代更新所述预期池中每个第一时间周期内的客户节点,实现编排全部客户节点的第一心跳预期最终获取相应的第二心跳预期。
[0088]
s400,按所述第二心跳预期使相应的客户节点向主控节点发送心跳请求;所述主控节点配置一个用于主动联系客户节点的触发进程,触发进程触发由第二心跳预期确定的相应客户节点,使相应的客户节点向所述主控节点发送心跳请求。具体的,所述触发进程访问预期池中每个客户节点集合,获取客户节点集合中每个客户节点;所述触发进程根据获取的客户节点向相应的客户节点发送主控节点当前的时钟与客户节点的第二心跳预期,相应的客户节点根据收到的主控节点当前的时钟调整自身时钟,相应的客户节点根据收到的第二心跳预期向主控节点发送心跳请求。
[0089]
具体实施过程中,从客户节点资源池中选取待检测的客户节点,人工配置待检测的客户节点的心跳时刻,调用所述触发进程来将配置的待检测的客户节点的心跳时刻和主控节点的当前时钟发送给待检测的客户节点。用于按需检测待检测客户节点。
[0090]
s500,统计未发送心跳请求的客户节点,根据统计结果更新相应的客户节点的客户节点是否在线和信用分数。
[0091]
具体实施过程中,所述主控节点记录每个所述客户节点是否响应于触发进程的触发而发送心跳请求,以实现统计未发送心跳请求的客户节点。参阅图4所示,一种可行的记录方式如下:
[0092]
s501,对应每个客户节点定义一个违约次数变量。
[0093]
s502,监控每个客户节点是否未响应触发进程的触发的而发送心跳请求,是则执行s503。
[0094]
s503,相应客户节点的违约次数变量加一,获取相应客户节点相应违约的时刻。
[0095]
s504,所述主控节点将客户节点违约次数以及违约时刻作为违约参数,按照设定的数据结构将违约参数保存在相应的客户节点数据模型中。
[0096]
具体实施过程中,所述主控节点配置客户节点数据模型维护进程,所述客户节点数据模型维护进程根据主控节点违约次数变量和违约时刻更新相应的客户节点的客户节点是否在线和信用分数。
[0097]
具体的,当客户节点响应触发进程的触发而发送心跳请求时,所述客户节点数据模型维护进程将客户节点是否在线的参数设置为真,当客户节点未响应触发进程的触发而发送心跳请求时,所述客户节点数据模型维护进程将客户节点是否在线的参数设置为假。
[0098]
所述客户节点数据模型维护进程按照第二周期轮询每个客户节点的违约次数变量的值作为当前违约次数,每当所述客户节点数据模型维护进程轮询到客户节点的当前违约次数时,所述客户节点数据模型维护进程按如下公式计算客户节点当前的信用分数:
[0099]
当前的信用分数等于初始的信用分数减去当前违约次数。
[0100]
本技术提供的节点之间心跳处理方法从所述客户节点资源池中获取每个客户节
点数据模型的违约参数,实现对客户节点违约情况的统计。进一步地,设定违约密度阈值,统计设定预期心跳次数内违约次数,计算违约次数的占比并判断违约次数占比是否大于所述违约密度阈值,是则生成相应的警报信息。
[0101]
实施例2
[0102]
本实施例提供一种实现节点之间心跳处理方法的装置,包括主控节点和客户节点,所述主控节点包括由第一总线单元连接的第一控制单元、第一存储单元和第一接口单元;所述客户节点包括由第二总线单元连接的第二控制单元、第一存储单元和第二接口单元,所述第一接口单元连接所述第二接口单元;
[0103]
所述第一存储单元存储至少一条第一指令,所述第一控制单元执行所述第一指令实现所述的节点之间心跳处理方法;所述第二存储单元存储至少一条第二指令,所述第二控制单元执行所述第二指令实现向所述主控节点发送心跳请求。
[0104]
本技术提供的节点之间心跳处理方法利用标准分数减去客户节点信用分数取自然对数,然后再由标准时间来除以所得自然对数的值来计算客户节点的心跳间隔时间,使得信用分数低的客户节点的心跳请求频率相比信用分数高的客户节点的心跳请求频率更高;通过提高信用分数低的客户节点的心跳频率实现对不可靠客户节点投入更多关注。
[0105]
本技术在确保每个第一时间周期内心跳量小于设定心跳量阈值的情况下,编排根据心跳间隔时间计算的第一心跳预期形成第二心跳预期;客户节点按照第二心跳预期向主控节点发送心跳请求时,每个第一时间周期内的心跳请求不超过心跳量阈值,从而避免心跳请求集中导致主控节点业务执行效率低、甚至崩溃宕机的情况。
[0106]
本技术在编排第一心跳预期形成第二心跳预期时,选取超出量个客户节点的第一心跳预期自加所述第一时间周期,从而将当前第一时间周期内超出量的客户节点的第一心跳预期顺延到后面一个第一时间周期内。实现一个第一时间周期内心跳量小于设定心跳量阈值。
[0107]
本技术在选取超出量的客户节点时,根据第一时间周期的计数的奇偶选取不同的超出量客户节点策略,实现一个第一时间周期若选取排序靠前的客户节点,那么下一第一时间周期选取排序靠后的客户节点。避免当前第一时间周期内选作超出量的客户节点在下一第一时间周期内仍被选作超出量的情况。避免出现客户节点重复顺延多次的情况。
[0108]
本技术通过还能在客户节点连续违约的情况下生成相应的报警信息,方便运维人员及时处理维护不可靠的客户节点。
[0109]
在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0110]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0111]
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0112]
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献