CN113873017A - 一种心跳周期调整方法、装置、客户端以及服务器 - Google Patents
一种心跳周期调整方法、装置、客户端以及服务器 Download PDFInfo
- Publication number
- CN113873017A CN113873017A CN202111046874.7A CN202111046874A CN113873017A CN 113873017 A CN113873017 A CN 113873017A CN 202111046874 A CN202111046874 A CN 202111046874A CN 113873017 A CN113873017 A CN 113873017A
- Authority
- CN
- China
- Prior art keywords
- heartbeat
- heartbeat cycle
- client
- cycle
- target
- 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
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000004590 computer program Methods 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 10
- 238000004891 communication Methods 0.000 abstract description 8
- 230000008569 process Effects 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 8
- 230000002452 interceptive effect Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000000747 cardiac effect Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- 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
-
- 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/14—Session management
- H04L67/143—Termination or inactivation of sessions, e.g. event-controlled end of session
- H04L67/145—Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
-
- 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/50—Network services
- H04L67/535—Tracking the activity of the user
Abstract
本申请涉及通信技术领域,公开了一种心跳周期调整方法、装置、客户端以及服务器,本实施例的方法包括:客户端基于服务器发送的目标心跳周期,以及预设的调整系数,确定可选心跳周期范围;客户端从所述可选心跳周期范围中选择任一心跳周期作为所述客户端对应的随机心跳周期,并基于所述随机心跳周期向所述服务器发送心跳包。上述实施例,各客户端是从相同的可选心跳周期范围中任意选择的一个随机心跳周期,会有部分客户端选择较小的心跳周期,部分客户端选择较大的心跳周期,减少了大量客户端在同一时间发心跳包的概率,减少了高并发的情况发生,从而使服务器能及时处理来自客户端的心跳包,并节约了网络带宽。
Description
技术领域
本申请涉及通信技术领域,特别涉及一种心跳周期调整方法、装置、客户端以及服务器。
背景技术
客户端-服务器(Client-Server,C/S)架构是客户端/服务器端交互模式,C/S结构通常采取服务器以及客户机两层结构,其中,服务器(Server)负责数据的管理,客户端(Client)负责完成与用户的交互任务。一个Sever连接多个Client,Sever与Client之间使用心跳检测机制,即周期性向对端发送心跳包,来确定Client是在线还是离线。
相关技术中,多个Client均基于固定的心跳周期,向Sever发送心跳包。
然而,当有较多Client接入Server时,大量Client常会在同一时间发心跳包,Server不能及时处理来自Client的心跳包,影响到部分Client和Server端的正常通信。
发明内容
本申请提供了一种心跳周期调整方法、装置、客户端以及服务器,用以合理调整客户端的心跳周期。
第一方面,本申请实施例提供一种心跳周期调整方法,应用于客户端,所述方法包括:
基于服务器发送的目标心跳周期,以及预设的调整系数,确定可选心跳周期范围;
从所述可选心跳周期范围中选择任一心跳周期作为所述客户端对应的随机心跳周期,并基于所述随机心跳周期向所述服务器发送心跳包。
上述方案,由于一个服务器连接多个客户端,各客户端是从相同的可选心跳周期范围中任意选择的一个随机心跳周期,各客户端选择可选心跳周期范围中较小的心跳周期以及较大的心跳周期的概率都是相同的,因此,会有部分客户端选择较小的心跳周期,部分客户端选择较大的心跳周期,减少了大量客户端在同一时间发心跳包的概率,减少了高并发的情况发生,从而使服务器能及时处理来自客户端的心跳包,并节约了网络带宽。
在一些可选的实施方式中,基于服务器发送的目标心跳周期,以及预设的调整系数,确定可选心跳周期范围,包括:
将所述目标心跳周期与预设的调整系数的乘积,确定为第一目标调整量;
将所述目标心跳周期与所述第一目标调整量之差确定为最小可选心跳周期,以及将所述目标心跳周期与所述第一目标调整量之和确定为最大可选心跳周期;
将所述最小可选心跳周期与所述最大可选心跳周期之间的心跳周期范围确定为所述可选心跳周期范围。
上述方案,第一目标调整量是随着目标心跳周期而变化,在目标心跳周期较大时,第一目标调整量也较大,从而合理地确定出上下可浮动的第一目标调整量;进而基于该第一目标调整量确定出在目标心跳周期的基础上合理的可选心跳周期范围。
在一些可选的实施方式中,在收到所述服务器发送的目标心跳周期之前,还包括:
基于默认心跳周期,以及预设的调整系数,确定初始心跳周期范围;
从所述初始心跳周期范围中选择任一心跳周期作为所述客户端对应的初始心跳周期,并基于所述初始心跳周期向所述服务器发送心跳包。
上述方案,在收到目标心跳周期前,各客户端是从初始心跳周期范围中任意选择的一个初始心跳周期,各客户端选择初始心跳周期范围中较小的心跳周期以及较大的心跳周期的概率都是相同的,因此,会有部分客户端选择较小的心跳周期,部分客户端选择较大的心跳周期,这样,在大量客户端刚接入服务器,还没有收到目标心跳周期时,能够减少这些刚接入服务器的客户端同时发心跳包的概率,减少高并发的情况发生。
第二方面,本申请实施例提供另一种心跳周期调整方法,应用于服务器,所述方法包括:
每隔预设时长基于当前的在线客户端的数量确定目标心跳周期;其中,当前的在线客户端的数量越多,所述目标心跳周期越长;
将所述目标心跳周期发送给各在线客户端,以使各在线客户端基于所述目标心跳周期以及预设的调整系数,确定可选心跳周期范围,并从所述可选心跳周期范围中选择任一心跳周期作为所述在线客户端对应的随机心跳周期;
接收各在线客户端基于对应的随机心跳周期发送的心跳包。
上述方案,目标心跳周期是服务器根据当前的在线客户端的数量确定的,在数量较少时,目标心跳周期较短,合理利用带宽;在数量较多时,目标心跳周期较长,降低了同一时间内对带宽的不合理占用。从而动态地根据在线客户端的数量,自适应调整目标心跳周期。
在一些可选的实施方式中,基于当前的在线客户端的数量确定目标心跳周期,包括:
将当前的在线客户端的数量对应的第二目标调整量,以及默认心跳周期之和,确定为目标心跳周期。
第三方面,本申请实施例提供一种心跳周期调整装置,包括:
心跳周期范围确定模块,用于基于服务器发送的目标心跳周期,以及预设的调整系数,确定可选心跳周期范围;
心跳周期确定模块,用于从所述可选心跳周期范围中选择任一心跳周期作为对应客户端的随机心跳周期,并基于所述随机心跳周期向所述服务器发送心跳包。
第四方面,本申请实施例提供另一种心跳周期调整装置,包括:
心跳周期处理模块,用于每隔预设时长基于当前的在线客户端的数量确定目标心跳周期;其中,当前的在线客户端的数量越多,所述目标心跳周期越长;
发送模块,用于将所述目标心跳周期发送给各在线客户端,以使各在线客户端基于所述目标心跳周期以及预设的调整系数,确定可选心跳周期范围,并从所述可选心跳周期范围中选择任一心跳周期作为所述在线客户端对应的随机心跳周期;
接收模块,用于接收各在线客户端基于对应的随机心跳周期发送的心跳包。
第五方面,本申请实施例提供一种客户端,包括一个或多个处理器,以及用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如上述第一方面所述的方法。
第六方面,本申请实施例提供一种服务器,包括一个或多个处理器,以及用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如上述第二方面所述的方法。
第七方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现如上述第一方面或者第二方面所述方法的步骤。
另外,第三方面至第七方面中任一种实现方式所带来的技术效果可参见第一方面以及第二方面中不同实现方式所带来的技术效果,此处不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的第一种应用场景示意图;
图2为本申请实施例提供的第二种应用场景示意图;
图3为本申请实施例提供的第一种心跳周期调整方法的交互流程图;
图4为本申请实施例提供的第二种心跳周期调整方法的交互流程图;
图5为本申请实施例提供的第三种心跳周期调整方法的交互流程图;
图6为本申请实施例提供的第一种心跳周期调整方法的示意流程图;
图7为本申请实施例提供的第二种心跳周期调整方法的示意流程图;
图8为本申请实施例提供的第一种心跳周期调整装置的结构示意图;
图9为本申请实施例提供的第二种心跳周期调整装置的结构示意图;
图10为本申请实施例提供的一种客户端的示意框图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。
术语“Agent”、“Client”均是指代客户端,即在本实施例中,“Agent”与“Client”可以替换。
在本申请的描述中,需要说明的是,除非另有明确的规定和限定,术语“连接”应做广义理解,例如,可以是直接相连,也可以通过中间媒介间接相连,可以是两个器件内部的连通。对于本领域的普通技术人员而言,可以视具体情况理解上述术语在本申请中的具体含义。
C/S结构通常采取服务器以及客户机两层结构,一个服务器连接多个客户端。客户端周期性向服务器发送心跳包,服务器根据接收的心跳包来确定客户端是在线还是离线。
参阅图1所示,在某一时刻,服务器100连接的客户端中,有10个客户端在线,分别是客户端101、客户端102、客户端103、客户端104、客户端105、客户端106、客户端107、客户端108、客户端109以及客户端110。
参阅图2所示,在另一时刻,两个客户端(客户端105以及客户端109)下线,另外6个客户端(客户端111~客户端116)上线。在该时刻,服务器100连接的客户端中,有14个客户端在线,分别是客户端101、客户端102、客户端103、客户端104、客户端106、客户端107、客户端108、客户端110、客户端111、客户端112、客户端113、客户端114、客户端115以及客户端116。
一些实施例中,多个客户端均基于固定的心跳周期(如60s),向服务器发送心跳包。其中,心跳周期为一个客户端发送两个相邻的心跳包的时间间隔。
参阅图1以及图2所示,在不同时刻有不同数量的客户端接入服务器,当有较多客户端接入服务器时,大量客户端常会在同一时间发心跳包,高并发的情况经常发生,服务器不能及时处理部分客户端的心跳包,可能造成这部分客户端的假离线。如同时收到客户端101、客户端102、客户端104、客户端106、客户端107、客户端108、客户端112、客户端113以及客户端116这九个客户端分别发送的心跳包,但服务器没有及时处理客户端112、客户端113以及客户端116发送的心跳包,这三个客户端虽按照心跳周期发送了心跳包,但还是被服务器确认为离线状态。另外,大量客户端在同一时间发心跳包,心跳包占用了大量网络带宽,高并发会导致网络带宽被消耗殆尽。
本实施例对上述C/S结构的具体实现不做限定,例如绿盟一体化终端安全管理系统,该系统能够高效、全方位地对企业网络中存在的终端设备进行统一接入管理,并对终端设备可能存在的威胁进行识别、检测、响应和告警,从而实现安全运维闭环管理。
上述应用场景只是实现本申请实施例的应用场景的示例,本申请实施例并不限于上述应用场景。如在实际应用中,服务器可以连接更多或者更少的客户端。
下面将结合附图及具体实施例,对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
图3为本申请实施例提供的第一种心跳周期调整方法的交互流程图,如图3所示,该方法可以包括:
步骤S301:服务器向当前的在线客户端发送目标心跳周期。
本实施例,服务器每隔预设时长确定一次目标心跳周期,并将该目标心跳周期发送给当前的在线客户端。
步骤S302:在线客户端基于服务器发送的目标心跳周期,以及预设的调整系数,确定可选心跳周期范围。
实施中,如果在线客户端直接基于相同的心跳周期向服务器发送心跳包,就会有部分在线客户端总是同时发送心跳包。例如,图2所示的客户端101、客户端102、客户端104、客户端106、客户端107、客户端108、客户端112、客户端113以及客户端116这九个客户端在TA时刻同时发送心跳包,在TB时刻还是会同时发送心跳包。
基于此,本实施例基于上述目标心跳周期,以及预设的调整系数,确定可选心跳周期范围,进而各客户端从相同的可选心跳周期范围中任意选择的一个随机心跳周期,使得在线客户端的心跳周期错开。
在目标心跳周期较大时,如果心跳周期浮动范围较大,该范围中的最小值或者最大值,相较于目标心跳周期的偏差也不会过大;反之,在目标心跳周期较小时,如果心跳周期浮动范围较大,该范围的最小值或者最大值,相较于目标心跳周期的偏差就会过大。
基于此,需要根据目标心跳周期以及预设的调整系数来确定第一目标调整量,进而将目标心跳周期上下偏移第一目标调整量确定可选心跳周期范围。
一些可选的实现方式中,上述基于服务器发送的目标心跳周期,以及预设的调整系数,确定可选心跳周期范围,可通过但不限于如下方式实现:
将所述目标心跳周期与预设的调整系数的乘积,确定为第一目标调整量;
将所述目标心跳周期与所述第一目标调整量之差确定为最小可选心跳周期,以及将所述目标心跳周期与所述第一目标调整量之和确定为最大可选心跳周期;
将所述最小可选心跳周期与所述最大可选心跳周期之间的心跳周期范围确定为所述可选心跳周期范围。
下面以一个具体的示例进行说明:
目标心跳周期T0为66s,预设的调整系数为0.5,第一目标调整量△T1=66s*0.5=33s;
最小可选心跳周期Tmin=T0-△T1=66s-33s=33s,最大可选心跳周期Tmax=T0+△T1=66s+33s=99s,可选心跳周期范围为33~99s。
上述示例只是为了更加清楚地说明如何确定可选心跳周期范围,本申请并不以此为限。
由于第一目标调整量是随着目标心跳周期而变化,在目标心跳周期较大时,第一目标调整量也较大,从而合理地确定出上下可浮动的第一目标调整量;进而基于该第一目标调整量确定出在目标心跳周期的基础上合理的可选心跳周期范围。
步骤S303:在线客户端从所述可选心跳周期范围中选择任一心跳周期作为该在线客户端对应的随机心跳周期。
由于各客户端选择可选心跳周期范围中较小的心跳周期以及较大的心跳周期的概率都是相同的,因此部分客户端选择较小的心跳周期,部分客户端选择较大的心跳周期,使得在线客户端的心跳周期错开,这样即使一些在线客户端在某一时刻同时发送心跳包,在下一次发心跳包时也能错开。
以可选心跳周期范围为33~99s为例,图2所示的客户端101的随机心跳周期为40s,客户端102的随机心跳周期为42s,客户端104的随机心跳周期为39s,客户端106的随机心跳周期为75s,客户端107的随机心跳周期为63s,客户端108的随机心跳周期为80s,客户端112的随机心跳周期为99s,客户端113的随机心跳周期为55s,客户端116的随机心跳周期为40s。这九个客户端在TA时刻同时发送心跳包,但客户端104在(TA+39s)时刻才会发送下一次心跳包,客户端101以及客户端116在(TA+40s)时刻才会发送下一次心跳包,客户端102在(TA+42s)时刻才会发送下一次心跳包,客户端113在(TA+55s)时刻才会发送下一次心跳包,客户端107在(TA+63s)时刻才会发送下一次心跳包,客户端106在(TA+75s)时刻才会发送下一次心跳包,客户端108在(TA+80s)时刻才会发送下一次心跳包,客户端112在(TA+99s)时刻才会发送下一次心跳包。虽然,这九个在线客户端在TA同时发送心跳包,但大部分在线客户端会在下一次发心跳包时错开。
上述实施例只是示例性说明,本申请并不以此为限。
步骤S304:在线客户端基于所述随机心跳周期向所述服务器发送心跳包。
上述方案,由于一个服务器连接多个客户端,各客户端是从相同的可选心跳周期范围中任意选择的一个随机心跳周期,各客户端选择可选心跳周期范围中较小的心跳周期以及较大的心跳周期的概率都是相同的,因此,会有部分客户端选择较小的心跳周期,部分客户端选择较大的心跳周期,减少了大量客户端在同一时间发心跳包的概率,减少了高并发的情况发生,从而使服务器能及时处理来自客户端的心跳包,并节约了网络带宽。
图4为本申请实施例提供的第二种心跳周期调整方法的交互流程图,如图4所示,该方法可以包括:
步骤S401:服务器每隔预设时长基于当前的在线客户端的数量确定目标心跳周期。
其中,当前的在线客户端的数量越多,所述目标心跳周期越长。
实施中,如果目标心跳周期是固定不变的,当在线客户端数量较少时,仅有少量心跳包传输,基于固定的目标心跳周期来进行通信,无法合理利用带宽;当在线客户端较多时,有大量心跳包传输,基于固定的目标心跳周期,带宽消耗严重。
基于此,本实施例中,服务器每隔预设时长会确定当前的在线客户端的数量,并基于当前的在线客户端的数量确定目标心跳周期。当前的在线客户端的数量越少,需要传输的心跳包越少,对应的目标心跳周期越短,可以较为频繁地发送心跳包,合理利用带宽;当前的在线客户端的数量越多,需要传输的心跳包越多,目标心跳周期越长,避免大量客户端同一时间发送大量的心跳包,导致带宽消耗严重,以及被服务器确认为离线状态。
如上所述,服务器以及客户端之间通过心跳包来维持通信状态。因此,服务器可以根据心跳包的接收情况确定当前的在线客户端的数量。示例性的:
服务器将各客户端的通信状态记录在对应的状态记录表中,状态记录表可参阅表1所示:
表1
客户端标识 | 最近通信时间 | 在线信息 |
客户端1 | T1 | 在线 |
服务器还会周期性地将各客户端对应的状态记录表更新到PostgreSQL数据库的客户端数据表中,客户端数据表可参阅表2所示:
表2
上述Agent ID为唯一标识Agent的信息;Agent IP为Agent对应的IP地址。
从上述客户端数据表中,通过结构化查询语言(Structured Query Language,SQL)可以计算出当前的在线客户端的数量。
上述确定当前的在线客户端的数量的方式只是示例性说明,本申请不以此为限。
在一些可选的实施方式中,基于当前的在线客户端的数量确定目标心跳周期,可通过但不限于如下方式实现:
将当前的在线客户端的数量对应的第二目标调整量,以及默认心跳周期之和,确定为目标心跳周期。
示例性的,目标心跳周期T0=t0+△T2,其中,t0为默认心跳周期,一些具体的实施例中t0为60s,△T2为当前的在线客户端的数量对应的第二目标调整量,一些具体的实施例中,△T2=N/10,N为当前的在线客户端的数量。
上述确定目标心跳周期的方式只是示例性说明,本申请并不限定确定目标心跳周期的具体实现方式。
步骤S402:服务器向当前的在线客户端发送目标心跳周期。
步骤S403:在线客户端基于服务器发送的目标心跳周期,以及预设的调整系数,确定可选心跳周期范围。
步骤S404:在线客户端从所述可选心跳周期范围中选择任一心跳周期作为该在线客户端对应的随机心跳周期。
步骤S405:在线客户端基于所述随机心跳周期向所述服务器发送心跳包。
该步骤S402~S405具体实现方式可参照上述实施例,此处不再赘述。
上述方案,目标心跳周期是服务器根据当前的在线客户端的数量确定的,在数量较少时,目标心跳周期较短,合理利用带宽;在数量较多时,目标心跳周期较长,降低了同一时间内对带宽的不合理占用。从而动态地根据在线客户端的数量,自适应调整目标心跳周期。
图5为本申请实施例提供的第三种心跳周期调整方法的交互流程图,如图5所示,该方法可以包括:
步骤S501:在线客户端基于默认心跳周期,以及预设的调整系数,确定初始心跳周期范围。
对于任一客户端,都设置有相同的默认心跳周期,如果在大量客户端刚接入服务器,还没有收到目标心跳周期时,直接基于相同的心跳周期向服务器发送心跳包,就会有大量在线客户端同时发送心跳包。
基于此,本实施例基于上述默认心跳周期,以及预设的调整系数,确定初始心跳周期范围,进而各客户端从相同的初始心跳周期范围中任意选择的一个初始心跳周期,使得刚接入服务器的客户端的心跳周期错开。
一些可选的实现方式中,上述基于默认心跳周期,以及预设的调整系数,确定初始心跳周期范围,可通过但不限于如下方式实现:
将所述默认心跳周期与预设的调整系数的乘积,确定为第三目标调整量;
将所述默认心跳周期与所述第三目标调整量之差确定为最小初始心跳周期,以及将所述默认心跳周期与所述第三目标调整量之和确定为最大初始心跳周期;
将所述最小初始心跳周期与所述最大初始心跳周期之间的心跳周期范围确定为所述初始心跳周期范围。
该确定初始心跳周期范围的具体实现方式,与上述确定可选心跳周期范围的具体实现方式类似,此处不再赘述。
步骤S502:在线客户端从所述初始心跳周期范围中选择任一心跳周期作为该在线客户端对应的初始心跳周期。
由于各客户端选择初始心跳周期范围中较小的心跳周期以及较大的心跳周期的概率都是相同的,因此部分客户端选择较小的心跳周期,部分客户端选择较大的心跳周期,使得刚接入服务器的客户端的心跳周期错开。
步骤S503:在线客户端基于所述初始心跳周期向所述服务器发送心跳包。
步骤S504:服务器向当前的在线客户端发送目标心跳周期。
步骤S505:在线客户端基于服务器发送的目标心跳周期,以及预设的调整系数,确定可选心跳周期范围。
步骤S506:在线客户端从所述可选心跳周期范围中选择任一心跳周期作为该在线客户端对应的随机心跳周期。
步骤S507:在线客户端基于所述随机心跳周期向所述服务器发送心跳包。
该步骤S504~S507具体实现方式可参照上述实施例,此处不再赘述。
上述方案,在收到目标心跳周期前,各客户端是从初始心跳周期范围中任意选择的一个初始心跳周期,各客户端选择初始心跳周期范围中较小的心跳周期以及较大的心跳周期的概率都是相同的,因此,会有部分客户端选择较小的心跳周期,部分客户端选择较大的心跳周期,这样,在大量客户端刚接入服务器,还没有收到目标心跳周期时,能够减少这些刚接入服务器的客户端同时发心跳包的概率,减少高并发的情况发生,提升了产品的快速响应能力和灵活易用性。
在本申请实施例中,客户端执行的心跳周期调整方法如图6所示,包括如下步骤:
步骤601:基于服务器发送的目标心跳周期,以及预设的调整系数,确定可选心跳周期范围。
步骤602:从所述可选心跳周期范围中选择任一心跳周期作为所述客户端对应的随机心跳周期,并基于所述随机心跳周期向所述服务器发送心跳包。
在一些可选的实施方式中,基于服务器发送的目标心跳周期,以及预设的调整系数,确定可选心跳周期范围,包括:
将所述目标心跳周期与预设的调整系数的乘积,确定为第一目标调整量;
将所述目标心跳周期与所述第一目标调整量之差确定为最小可选心跳周期,以及将所述目标心跳周期与所述第一目标调整量之和确定为最大可选心跳周期;
将所述最小可选心跳周期与所述最大可选心跳周期之间的心跳周期范围确定为所述可选心跳周期范围。
在一些可选的实施方式中,在收到所述服务器发送的目标心跳周期之前,还包括:
基于默认心跳周期,以及预设的调整系数,确定初始心跳周期范围;
从所述初始心跳周期范围中选择任一心跳周期作为所述客户端对应的初始心跳周期,并基于所述初始心跳周期向所述服务器发送心跳包。
本申请实施例中,服务器执行的心跳周期调整方法如图7所示,包括如下步骤:
步骤S701:每隔预设时长基于当前的在线客户端的数量确定目标心跳周期。
其中,当前的在线客户端的数量越多,所述目标心跳周期越长。
步骤S702:将所述目标心跳周期发送给各在线客户端,以使各在线客户端基于所述目标心跳周期以及预设的调整系数,确定可选心跳周期范围,并从所述可选心跳周期范围中选择任一心跳周期作为所述在线客户端对应的随机心跳周期。
步骤S703:接收各在线客户端基于对应的随机心跳周期发送的心跳包。
在一些可选的实施方式中,基于当前的在线客户端的数量确定目标心跳周期,包括:
将当前的在线客户端的数量对应的第二目标调整量,以及默认心跳周期之和,确定为目标心跳周期。
图6和图7实施例的具体实现方式可以参见上述交互方法的实施,重复之处不再赘述。
如图8所示,基于与图6所示的心跳周期调整方法相同的发明构思,本申请实施例提供第一种心跳周期调整装置800,包括:
心跳周期范围确定模块801,用于基于服务器发送的目标心跳周期,以及预设的调整系数,确定可选心跳周期范围;
心跳周期确定模块802,用于从所述可选心跳周期范围中选择任一心跳周期作为对应客户端的随机心跳周期,并基于所述随机心跳周期向所述服务器发送心跳包。
在一些可选的实施方式中,心跳周期范围确定模块801,具体用于:
将所述目标心跳周期与预设的调整系数的乘积,确定为第一目标调整量;
将所述目标心跳周期与所述第一目标调整量之差确定为最小可选心跳周期,以及将所述目标心跳周期与所述第一目标调整量之和确定为最大可选心跳周期;
将所述最小可选心跳周期与所述最大可选心跳周期之间的心跳周期范围确定为所述可选心跳周期范围。
在一些可选的实施方式中,心跳周期范围确定模块801在收到所述服务器发送的目标心跳周期之前,还用于:
基于默认心跳周期,以及预设的调整系数,确定初始心跳周期范围;
心跳周期确定模块802,还用于:
从所述初始心跳周期范围中选择任一心跳周期作为对应客户端的初始心跳周期,并基于所述初始心跳周期向所述服务器发送心跳包。
如图9所示,基于与图7所示的心跳周期调整方法相同的发明构思,本申请实施例提供第二种心跳周期调整装置900,包括:
心跳周期处理模块901,用于每隔预设时长基于当前的在线客户端的数量确定目标心跳周期;其中,当前的在线客户端的数量越多,所述目标心跳周期越长;
发送模块902,用于将所述目标心跳周期发送给各在线客户端,以使各在线客户端基于所述目标心跳周期以及预设的调整系数,确定可选心跳周期范围,并从所述可选心跳周期范围中选择任一心跳周期作为所述在线客户端对应的随机心跳周期;
接收模块903,用于接收各在线客户端基于对应的随机心跳周期发送的心跳包。
在一些可选的实施方式中,心跳周期处理模块901,具体用于:
将当前的在线客户端的数量对应的第二目标调整量,以及默认心跳周期之和,确定为目标心跳周期。
如图10所示,基于与图6所示的心跳周期调整方法相同的发明构思,本申请实施例提供一种客户端1000,包括:处理器1001和存储器1002;
存储器1002,用于存储处理器1001执行的计算机程序。存储器1002可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器1002也可以是非易失性存储器(non-volatile memory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD),或者存储器1002是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器1002可以是上述组合。
处理器1001,可以包括一个或多个中央处理单元(central processing unit,CPU),图形处理单元(Graphics Processing Unit,GPU)或者为数字处理单元等等。
本申请实施例中不限定上述存储器1002和处理器1001之间的具体连接介质。本申请实施例在图10中以存储器1002和处理器1001之间通过总线1003连接,总线1003在图10中以粗线表示,但本申请并不引以为限。所述总线1003可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
其中,所述存储器存储有程序代码,当所述程序代码被所述处理器执行时,使得所述处理器1001执行下列过程:
基于服务器发送的目标心跳周期,以及预设的调整系数,确定可选心跳周期范围;
从所述可选心跳周期范围中选择任一心跳周期作为对应客户端的随机心跳周期,并基于所述随机心跳周期向所述服务器发送心跳包。
在一些可选的实施方式中,所述处理器1001具体执行:
将所述目标心跳周期与预设的调整系数的乘积,确定为第一目标调整量;
将所述目标心跳周期与所述第一目标调整量之差确定为最小可选心跳周期,以及将所述目标心跳周期与所述第一目标调整量之和确定为最大可选心跳周期;
将所述最小可选心跳周期与所述最大可选心跳周期之间的心跳周期范围确定为所述可选心跳周期范围。
在一些可选的实施方式中,所述处理器1001在收到所述服务器发送的目标心跳周期之前,还执行:
基于默认心跳周期,以及预设的调整系数,确定初始心跳周期范围;
从所述初始心跳周期范围中选择任一心跳周期作为对应客户端的初始心跳周期,并基于所述初始心跳周期向所述服务器发送心跳包。
基于与图7所示的心跳周期调整方法相同的发明构思,本申请实施例提供一种服务器,包括:处理器和存储器;
存储器,用于存储处理器执行的计算机程序。存储器可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器也可以是非易失性存储器(non-volatile memory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD),或者存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是上述组合。
处理器,可以包括一个或多个中央处理单元(central processing unit,CPU),图形处理单元(Graphics Processing Unit,GPU)或者为数字处理单元等等。
本申请实施例中不限定上述存储器和处理器之间的具体连接介质。
其中,所述存储器存储有程序代码,当所述程序代码被所述处理器执行时,使得所述处理器执行下列过程:
每隔预设时长基于当前的在线客户端的数量确定目标心跳周期;其中,当前的在线客户端的数量越多,所述目标心跳周期越长;
将所述目标心跳周期发送给各在线客户端,以使各在线客户端基于所述目标心跳周期以及预设的调整系数,确定可选心跳周期范围,并从所述可选心跳周期范围中选择任一心跳周期作为所述在线客户端对应的随机心跳周期;
接收各在线客户端基于对应的随机心跳周期发送的心跳包。
在一些可选的实施方式中,所述处理器具体执行:
将当前的在线客户端的数量对应的第二目标调整量,以及默认心跳周期之和,确定为目标心跳周期。
本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述心跳周期调整方法的步骤。其中,可读存储介质可以为非易失可读存储介质。
以上参照示出根据本申请实施例的方法、装置(系统)和/或计算机程序产品的框图和/或流程图描述本申请。应理解,可以通过计算机程序指令来实现框图和/或流程图示图的一个块以及框图和/或流程图示图的块的组合。可以将这些计算机程序指令提供给通用计算机、专用计算机的处理器和/或其它可编程心跳周期调整装置,以产生机器,使得经由计算机处理器和/或其它可编程心跳周期调整装置执行的指令创建用于实现框图和/或流程图块中所指定的功能/动作的方法。
相应地,还可以用硬件和/或软件(包括固件、驻留软件、微码等)来实施本申请。更进一步地,本申请可以采取计算机可使用或计算机可读存储介质上的计算机程序产品的形式,其具有在介质中实现的计算机可使用或计算机可读程序代码,以由指令执行系统来使用或结合指令执行系统而使用。在本申请上下文中,计算机可使用或计算机可读介质可以是任意介质,其可以包含、存储、通信、传输、或传送程序,以由指令执行系统、装置或设备使用,或结合指令执行系统、装置或设备使用。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种心跳周期调整方法,其特征在于,应用于客户端,所述方法包括:
基于服务器发送的目标心跳周期,以及预设的调整系数,确定可选心跳周期范围;
从所述可选心跳周期范围中选择任一心跳周期作为所述客户端对应的随机心跳周期,并基于所述随机心跳周期向所述服务器发送心跳包。
2.根据权利要求1所述的方法,其特征在于,基于服务器发送的目标心跳周期,以及预设的调整系数,确定可选心跳周期范围,包括:
将所述目标心跳周期与预设的调整系数的乘积,确定为第一目标调整量;
将所述目标心跳周期与所述第一目标调整量之差确定为最小可选心跳周期,以及将所述目标心跳周期与所述第一目标调整量之和确定为最大可选心跳周期;
将所述最小可选心跳周期与所述最大可选心跳周期之间的心跳周期范围确定为所述可选心跳周期范围。
3.根据权利要求1或2所述的方法,其特征在于,在收到所述服务器发送的目标心跳周期之前,还包括:
基于默认心跳周期,以及预设的调整系数,确定初始心跳周期范围;
从所述初始心跳周期范围中选择任一心跳周期作为所述客户端对应的初始心跳周期,并基于所述初始心跳周期向所述服务器发送心跳包。
4.一种心跳周期调整方法,其特征在于,应用于服务器,所述方法包括:
每隔预设时长基于当前的在线客户端的数量确定目标心跳周期;其中,当前的在线客户端的数量越多,所述目标心跳周期越长;
将所述目标心跳周期发送给各在线客户端,以使各在线客户端基于所述目标心跳周期以及预设的调整系数,确定可选心跳周期范围,并从所述可选心跳周期范围中选择任一心跳周期作为所述在线客户端对应的随机心跳周期;
接收各在线客户端基于对应的随机心跳周期发送的心跳包。
5.根据权利要求4所述的方法,其特征在于,基于当前的在线客户端的数量确定目标心跳周期,包括:
将当前的在线客户端的数量对应的第二目标调整量,以及默认心跳周期之和,确定为目标心跳周期。
6.一种心跳周期调整装置,其特征在于,包括:
心跳周期范围确定模块,用于基于服务器发送的目标心跳周期,以及预设的调整系数,确定可选心跳周期范围;
心跳周期确定模块,用于从所述可选心跳周期范围中选择任一心跳周期作为对应客户端的随机心跳周期,并基于所述随机心跳周期向所述服务器发送心跳包。
7.一种心跳周期调整装置,其特征在于,包括:
心跳周期处理模块,用于每隔预设时长基于当前的在线客户端的数量确定目标心跳周期;其中,当前的在线客户端的数量越多,所述目标心跳周期越长;
发送模块,用于将所述目标心跳周期发送给各在线客户端,以使各在线客户端基于所述目标心跳周期以及预设的调整系数,确定可选心跳周期范围,并从所述可选心跳周期范围中选择任一心跳周期作为所述在线客户端对应的随机心跳周期;
接收模块,用于接收各在线客户端基于对应的随机心跳周期发送的心跳包。
8.一种客户端,其特征在于,包括一个或多个处理器,以及用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1~3任一项所述的心跳周期调整方法。
9.一种服务器,其特征在于,包括一个或多个处理器,以及用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求4或5所述的心跳周期调整方法。
10.一种计算机可读存储介质,其特征在于,所述可读存储介质内存储有计算机程序,当所述计算机程序被处理器执行时,实现如权利要求1~5中任一项所述的心跳周期调整方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111046874.7A CN113873017B (zh) | 2021-09-06 | 2021-09-06 | 一种心跳周期调整方法、装置、客户端以及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111046874.7A CN113873017B (zh) | 2021-09-06 | 2021-09-06 | 一种心跳周期调整方法、装置、客户端以及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113873017A true CN113873017A (zh) | 2021-12-31 |
CN113873017B CN113873017B (zh) | 2023-12-26 |
Family
ID=78994824
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111046874.7A Active CN113873017B (zh) | 2021-09-06 | 2021-09-06 | 一种心跳周期调整方法、装置、客户端以及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113873017B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114666332A (zh) * | 2022-03-29 | 2022-06-24 | 北京奕斯伟计算技术有限公司 | 数据传输方法、边缘盒子、边缘云及数据传输系统 |
CN115134237A (zh) * | 2022-08-30 | 2022-09-30 | 建信金融科技有限责任公司 | 数据更新方法、心跳检测方法、装置、设备及介质 |
CN115334141A (zh) * | 2022-08-03 | 2022-11-11 | 上海艺赛旗软件股份有限公司 | 一种基于心跳机制的双向数据传输系统、方法及装置 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070294380A1 (en) * | 2006-06-14 | 2007-12-20 | Kabushiki Kaisha Toshiba | System and method for periodic server-to-client data delivery |
US20090274058A1 (en) * | 2008-05-02 | 2009-11-05 | Nelson Seto | System and method for heartbeat signal generation |
CN102685768A (zh) * | 2011-03-08 | 2012-09-19 | 华为技术有限公司 | 心跳消息的处理方法、心跳周期的获取方法及接入网设备 |
WO2012174934A1 (zh) * | 2011-06-21 | 2012-12-27 | 中兴通讯股份有限公司 | 一种心跳周期的自适应方法和装置 |
CN103139303A (zh) * | 2013-02-07 | 2013-06-05 | 网易(杭州)网络有限公司 | 一种用于保持连接的心跳方法、装置及系统 |
CN103209089A (zh) * | 2012-01-17 | 2013-07-17 | 华为技术有限公司 | 心跳周期的获取方法及终端、服务器 |
CN104158684A (zh) * | 2014-08-15 | 2014-11-19 | 深圳市蜂联科技有限公司 | 基于开放式智能网关平台的网关设备状态跟踪方法 |
CN106685748A (zh) * | 2015-11-05 | 2017-05-17 | 中移(杭州)信息技术有限公司 | 一种心跳信息发送方法、服务器及终端 |
CN107135518A (zh) * | 2017-06-09 | 2017-09-05 | 深圳市沃特沃德股份有限公司 | 维持心跳连接的方法、装置和终端设备 |
US20170302557A1 (en) * | 2016-04-19 | 2017-10-19 | International Business Machines Corporation | Managing connections for data communications using heartbeat messaging |
CN108449239A (zh) * | 2018-06-19 | 2018-08-24 | 广州视源电子科技股份有限公司 | 心跳包检测方法、装置、设备和存储介质 |
CN108833085A (zh) * | 2018-04-04 | 2018-11-16 | 深圳大学 | 一种基于心跳信号的可穿戴智能设备配对方法及系统 |
CN111078267A (zh) * | 2019-12-31 | 2020-04-28 | 深圳市优必选科技股份有限公司 | 一种机器人状态信息更新方法、装置、服务器及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107078925B (zh) * | 2014-10-29 | 2020-07-07 | 华为技术有限公司 | 一种心跳周期的设置方法及终端 |
CN107819642B (zh) * | 2017-09-15 | 2020-02-28 | 中国科学院计算技术研究所 | 基于分布式的自适应心跳方法和系统 |
-
2021
- 2021-09-06 CN CN202111046874.7A patent/CN113873017B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070294380A1 (en) * | 2006-06-14 | 2007-12-20 | Kabushiki Kaisha Toshiba | System and method for periodic server-to-client data delivery |
US20090274058A1 (en) * | 2008-05-02 | 2009-11-05 | Nelson Seto | System and method for heartbeat signal generation |
CN102685768A (zh) * | 2011-03-08 | 2012-09-19 | 华为技术有限公司 | 心跳消息的处理方法、心跳周期的获取方法及接入网设备 |
WO2012174934A1 (zh) * | 2011-06-21 | 2012-12-27 | 中兴通讯股份有限公司 | 一种心跳周期的自适应方法和装置 |
CN103209089A (zh) * | 2012-01-17 | 2013-07-17 | 华为技术有限公司 | 心跳周期的获取方法及终端、服务器 |
CN103139303A (zh) * | 2013-02-07 | 2013-06-05 | 网易(杭州)网络有限公司 | 一种用于保持连接的心跳方法、装置及系统 |
CN104158684A (zh) * | 2014-08-15 | 2014-11-19 | 深圳市蜂联科技有限公司 | 基于开放式智能网关平台的网关设备状态跟踪方法 |
CN106685748A (zh) * | 2015-11-05 | 2017-05-17 | 中移(杭州)信息技术有限公司 | 一种心跳信息发送方法、服务器及终端 |
US20170302557A1 (en) * | 2016-04-19 | 2017-10-19 | International Business Machines Corporation | Managing connections for data communications using heartbeat messaging |
CN107135518A (zh) * | 2017-06-09 | 2017-09-05 | 深圳市沃特沃德股份有限公司 | 维持心跳连接的方法、装置和终端设备 |
CN108833085A (zh) * | 2018-04-04 | 2018-11-16 | 深圳大学 | 一种基于心跳信号的可穿戴智能设备配对方法及系统 |
CN108449239A (zh) * | 2018-06-19 | 2018-08-24 | 广州视源电子科技股份有限公司 | 心跳包检测方法、装置、设备和存储介质 |
CN111078267A (zh) * | 2019-12-31 | 2020-04-28 | 深圳市优必选科技股份有限公司 | 一种机器人状态信息更新方法、装置、服务器及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114666332A (zh) * | 2022-03-29 | 2022-06-24 | 北京奕斯伟计算技术有限公司 | 数据传输方法、边缘盒子、边缘云及数据传输系统 |
CN115334141A (zh) * | 2022-08-03 | 2022-11-11 | 上海艺赛旗软件股份有限公司 | 一种基于心跳机制的双向数据传输系统、方法及装置 |
CN115134237A (zh) * | 2022-08-30 | 2022-09-30 | 建信金融科技有限责任公司 | 数据更新方法、心跳检测方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113873017B (zh) | 2023-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113873017B (zh) | 一种心跳周期调整方法、装置、客户端以及服务器 | |
US9805140B2 (en) | Striping of directed graphs and nodes with improved functionality | |
CN106095589B (zh) | 一种分配分区的方法、装置及系统 | |
US20100262687A1 (en) | Dynamic data partitioning for hot spot active data and other data | |
CN111031336A (zh) | 直播榜单数据更新方法、装置、电子设备和存储介质 | |
CN106952085B (zh) | 一种数据存储与业务处理的方法及装置 | |
WO2020256831A1 (en) | Smart contract information redirect to updated version of smart contract | |
CN113159463A (zh) | 业务量监控方法和装置 | |
CN113347238A (zh) | 基于区块链的消息分区方法及系统、设备、存储介质 | |
CN111258854B (zh) | 模型训练方法、基于预测模型的报警方法和相关装置 | |
CN110061933B (zh) | 一种数据处理方法及装置、设备、存储介质 | |
CN113612624B (zh) | 一种节点之间心跳处理方法及装置 | |
CN113312239B (zh) | 一种数据检测方法、装置、电子设备及介质 | |
CN113411237B (zh) | 一种低延迟检测终端状态的方法、存储介质及系统 | |
CN112966005B (zh) | 定时消息发送方法、装置、计算机设备以及存储介质 | |
CN110543496B (zh) | 用于时序数据库集群的数据处理方法和装置 | |
CN113947491A (zh) | 基于电力区块链的领导节点确定方法、装置、设备和介质 | |
CN108683612B (zh) | 一种消息获取方法和装置 | |
CN115987998B (zh) | 微服务系统领袖者选举方法、系统、存储介质和电子设备 | |
CN112306691B (zh) | 用户等级确定方法、系统、计算机设备和存储介质 | |
CN116760837B (zh) | 一种基于联邦学习和权益选举的分布式共识方法及系统 | |
CN116303804B (zh) | 一种数据对比方法、装置、设备和介质 | |
CN116382900A (zh) | 负载均衡处理方法、装置、设备、介质和计算机程序产品 | |
US11698797B2 (en) | Application tuning based on performance characteristics | |
CN115190177A (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 |