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

心跳包的控制方法和装置、处理器及电子设备与流程

2023-04-05 15:03:10 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,具体而言,涉及一种心跳包的控制方法和装置、处理器及电子设备。


背景技术:

2.目前微服务架构已成为主流,即通过拆分单体应用为分布式微服务,每个消费方与提供方之前通过rpc进行通信。消费方需要和每个提供方建立长连接,微服务协议默认一个固定周期发送心跳包来保证连接的可用性,但是随着集群越来越大,消费方与提供方数量越来越多。用于维护长连接可用的心跳包发送的cpu开销,逐渐变的不可忽视的一个开销。
3.针对相关技术中通过固定周期发送心跳包来保证消费方与提供方之前连接的可用性,导致心跳发送开销高的问题,目前尚未提出有效的解决方案。


技术实现要素:

4.本技术的主要目的在于提供一种心跳包的控制方法和装置、处理器及电子设备,以解决相关技术中通过固定周期发送心跳包来保证消费方与提供方之前连接的可用性,导致心跳发送开销高的问题。
5.为了实现上述目的,根据本技术的一个方面,提供了一种心跳包的控制方法。该方法包括:建立服务提供方与服务请求方之间的长连接,并按照初始预设周期发送第一心跳包,以通过所述第一心跳包检验所述长连接是否通讯正常;检测在预设时间段内多个目标连接请求是否均连接成功,其中,所述目标连接请求至少包括:心跳包连接请求和服务连接请求,所述心跳包连接请求由所述第一心跳包触发,所述服务连接请求由待执行的目标服务触发;若在所述在预设时间段内多个目标连接请求均连接成功,则确定第一目标调整速率和发送心跳包的第一目标周期;依据所述第一目标调整速率,将所述心跳包的发送周期由所述初始预设周期拉长至所述第一目标周期。
6.进一步地,若在所述在预设时间段内多个目标连接请求均连接成功,则确定第一目标调整速率和发送心跳包的第一目标周期包括:确定所述服务提供方与所述服务请求方之间的目标服务的服务类型;依据所述服务类型,确定所述目标服务的服务等级;依据所述服务等级确定所述第一目标调整速率和所述第一目标周期。
7.进一步地,依据所述服务等级确定所述第一目标调整速率和所述第一目标周期包括:若所述服务等级为第一等级,则确定所述第一目标调整速率为第一调整速率,以及确定所述第一目标周期为第一周期;若所述服务等级为第二等级,则确定所述第一目标调整速率为第二调整速率,以及确定所述第一目标周期为第二周期,其中,所述第一等级高于所述第二等级,所述第一调整速率小于所述第二调整速率,所述第一周期的时间小于所述第二周期的时间;若所述服务等级为第三等级,则确定所述第一目标调整速率为第三调整速率,以及确定所述第一目标周期为第三周期,其中,所述第二等级高于所述第三等级,所述第二
调整速率小于所述第三调整速率,所述第二周期的时间小于所述第三周期的时间。
8.进一步地,若检测到存在目标连接请求未连接成功,所述方法还包括:将所述心跳包的发送周期由所述初始预设周期缩短至第二目标周期,其中,所述第二目标周期的时间小于所述第一目标周期的时间;按照所述第二目标周期发送第二心跳包。
9.进一步地,在按照所述第二目标周期发送第二心跳包之后,所述方法还包括:判断由所述第二心跳包触发的心跳包连接请求是否连接成功;若由所述第二心跳包触发的心跳包连接请求连接成功,则依据所述第一目标调整速率,将所述心跳包的发送周期由所述第二目标周期拉长至所述第一目标周期。
10.进一步地,在判断由所述第二心跳包触发的心跳包连接请求是否连接成功之后,所述方法还包括:确定由所述第二心跳包触发的心跳包连接请求的失败次数;若所述失败次数大于等于第一预设次数,则表征所述服务提供方与所述服务请求方之间的长连接已断开;若所述服务提供方与所述服务请求方之间的长连接已断开,则再次建立所述服务提供方与所述服务请求方之间的长连接。
11.进一步地,在依据所述第一目标调整速率,将所述心跳包的发送周期由所述初始预设周期拉长至所述第一目标周期之后,所述方法还包括:统计由拉长心跳包的发送周期导致连接失败的目标次数,以及统计在连接失败时的第三目标周期,其中,所述第三目标周期的时间小于等于所述第一目标周期的时间;依据目标次数和所述第三目标周期,对所述第一目标调整速率和所述第一目标周期进行调整。
12.进一步地,建立服务提供方与服务请求方之间的长连接包括:通过所述服务请求方发送第一数据包发送至所述服务提供方,其中,所述服务提供方接收到所述第一数据包后,对所述第一数据包进行数据处理得到第二数据包,并将所述第二数据包返回至所述服务请求方;通过所述服务请求方对所述第二数据包进行检验,若检验通过则对所述第二数据包进行处理得到第三数据包;通过所述服务请求方发送所述第三数据包发送至所述服务提供方,其中,所述述服务提供方接收到所述第三数据包后,对所述第三数据包进行检验,若检验通过,则所述服务提供方与所述服务请求方之间的长连接建立成功。
13.为了实现上述目的,根据本技术的另一方面,提供了一种心跳包的控制装置。该装置包括:第一建立单元,用于建立服务提供方与服务请求方之间的长连接,并按照初始预设周期发送第一心跳包,以通过所述第一心跳包检验所述长连接是否通讯正常;检测单元,用于检测在预设时间段内多个目标连接请求是否均连接成功,其中,所述目标连接请求至少包括:心跳包连接请求和服务连接请求,所述心跳包连接请求由所述第一心跳包触发,所述服务连接请求由待执行的目标服务触发;第一确定单元,用于若在所述在预设时间段内多个目标连接请求均连接成功,则确定第一目标调整速率和发送心跳包的第一目标周期;第一处理单元,用于依据所述第一目标调整速率,将所述心跳包的发送周期由所述初始预设周期拉长至所述第一目标周期。
14.进一步地,所述第一确定单元包括:第一确定模块,用于确定所述服务提供方与所述服务请求方之间的目标服务的服务类型;第二确定模块,用于依据所述服务类型,确定所述目标服务的服务等级;第三确定模块,用于依据所述服务等级确定所述第一目标调整速率和所述第一目标周期。
15.进一步地,所述第三确定模块包括:第一确定子模块,用于若所述服务等级为第一
等级,则确定所述第一目标调整速率为第一调整速率,以及确定所述第一目标周期为第一周期;第二确定子模块,用于若所述服务等级为第二等级,则确定所述第一目标调整速率为第二调整速率,以及确定所述第一目标周期为第二周期,其中,所述第一等级高于所述第二等级,所述第一调整速率小于所述第二调整速率,所述第一周期的时间小于所述第二周期的时间;第三确定子模块,用于若所述服务等级为第三等级,则确定所述第一目标调整速率为第三调整速率,以及确定所述第一目标周期为第三周期,其中,所述第二等级高于所述第三等级,所述第二调整速率小于所述第三调整速率,所述第二周期的时间小于所述第三周期的时间。
16.进一步地,所述装置还包括:第二处理单元,用于若检测到存在目标连接请求未连接成功,将所述心跳包的发送周期由所述初始预设周期缩短至第二目标周期,其中,所述第二目标周期的时间小于所述第一目标周期的时间;第一发送单元,用于按照所述第二目标周期发送第二心跳包。
17.进一步地,所述装置还包括:判断单元,用于在按照所述第二目标周期发送第二心跳包之后,判断由所述第二心跳包触发的心跳包连接请求是否连接成功;第三处理单元,用于若由所述第二心跳包触发的心跳包连接请求连接成功,则依据所述第一目标调整速率,将所述心跳包的发送周期由所述第二目标周期拉长至所述第一目标周期。
18.进一步地,所述装置还包括:第二确定单元,用于在判断由所述第二心跳包触发的心跳包连接请求是否连接成功之后,确定由所述第二心跳包触发的心跳包连接请求的失败次数;第三确定单元,用于若所述失败次数大于等于第一预设次数,则表征所述服务提供方与所述服务请求方之间的长连接已断开;第二建立单元,用于若所述服务提供方与所述服务请求方之间的长连接已断开,则再次建立所述服务提供方与所述服务请求方之间的长连接。
19.进一步地,所述装置还包括:统计单元,用于在依据所述第一目标调整速率,将所述心跳包的发送周期由所述初始预设周期拉长至所述第一目标周期之后,统计由拉长心跳包的发送周期导致连接失败的目标次数,以及统计在连接失败时的第三目标周期,其中,所述第三目标周期的时间小于等于所述第一目标周期的时间;调整单元,用于依据目标次数和所述第三目标周期,对所述第一目标调整速率和所述第一目标周期进行调整。
20.进一步地,所述第一建立单元包括:第二发送单元,用于通过所述服务请求方发送第一数据包发送至所述服务提供方,其中,所述服务提供方接收到所述第一数据包后,对所述第一数据包进行数据处理得到第二数据包,并将所述第二数据包返回至所述服务请求方;检验单元,用于通过所述服务请求方对所述第二数据包进行检验,若检验通过则对所述第二数据包进行处理得到第三数据包;第三发送单元,用于通过所述服务请求方发送所述第三数据包发送至所述服务提供方,其中,所述述服务提供方接收到所述第三数据包后,对所述第三数据包进行检验,若检验通过,则所述服务提供方与所述服务请求方之间的长连接建立成功。
21.为了实现上述目的,根据本技术的一个方面,提供了一种处理器,处理器用于运行程序,其中,所述程序运行时执行上述任意一项所述的心跳包的控制方法。
22.为了实现上述目的,根据本技术的一个方面,提供了一种电子设备,电子设备包括一个或多个处理器和存储器,存储器用于存储一个或多个处理器实现上述任意一项所述的
心跳包的控制方法。
23.通过本技术,采用以下步骤:建立服务提供方与服务请求方之间的长连接,并按照初始预设周期发送第一心跳包,以通过第一心跳包检验长连接是否通讯正常;检测在预设时间段内多个目标连接请求是否均连接成功,其中,目标连接请求至少包括:心跳包连接请求和服务连接请求,心跳包连接请求由第一心跳包触发,服务连接请求由待执行的目标服务触发;若在预设时间段内多个目标连接请求均连接成功,则确定第一目标调整速率和发送心跳包的第一目标周期;依据第一目标调整速率,将心跳包的发送周期由初始预设周期拉长至第一目标周期,解决了相关技术中通过固定周期发送心跳包来保证消费方与提供方之前连接的可用性,导致心跳发送开销高的问题。在本方案中,通过检测在预设时间段内多个目标连接请求是否均连接成功的情况,实时自适应调整心跳频率,降低无用心跳发送数量,进而达到了降低心跳发送开销的效果。
附图说明
24.构成本技术的一部分的附图用来提供对本技术的进一步理解,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
25.图1是根据本技术实施例提供的心跳包的控制方法的流程图;
26.图2是根据本技术实施例提供的固定周期发送心跳包的示意图;
27.图3是根据本技术实施例提供的拉长心跳包的发送周期的示意图一;
28.图4是根据本技术实施例提供的拉长心跳包的发送周期的示意图二;
29.图5是根据本技术实施例提供的重置心跳包的发送周期的示意图;
30.图6是根据本技术实施例提供的可选的心跳包的控制方法的流程图;
31.图7是根据本技术实施例提供的心跳包的控制装置的示意图;
32.图8是根据本技术实施例提供电子设备的示意图。
具体实施方式
33.需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本技术。
34.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
35.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
36.需要说明的是,本公开所涉及的相关信息(包括但不限于用户设备信息、用户个人
信息等)和数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。例如,本系统和相关用户或机构间设置有接口,在获取相关信息之前,需要通过接口向前述的用户或机构发送获取请求,并在接收到前述的用户或机构反馈的同意信息后,获取相关信息。
37.目前微服务架构已成为主流,即通过拆分单体应用为分布式微服务,每个消费方与提供方之前通过rpc进行通信。消费方需要和每个提供方建立长连接,微服务协议默认一个固定周期发送心跳包来保证连接的可用性,但是随着集群越来越大,消费方与提供方数量越来越多。用于维护长连接可用的心跳包发送的cpu开销,逐渐变的不可忽视的一个开销。
38.下面结合优选的实施步骤对本发明进行说明,图1是根据本技术实施例提供的心跳包的控制方法的流程图,如图1所示,该方法包括如下步骤:
39.步骤s101,建立服务提供方与服务请求方之间的长连接,并按照初始预设周期发送第一心跳包,以通过第一心跳包检验长连接是否通讯正常;
40.步骤s102,检测在预设时间段内多个目标连接请求是否均连接成功,其中,目标连接请求至少包括:心跳包连接请求和服务连接请求,心跳包连接请求由第一心跳包触发,服务连接请求由待执行的目标服务触发;
41.步骤s103,若在预设时间段内多个目标连接请求均连接成功,则确定第一目标调整速率和发送心跳包的第一目标周期;
42.步骤s104,依据第一目标调整速率,将心跳包的发送周期由初始预设周期拉长至第一目标周期。
43.具体地,正常业务应用启动后,建立服务提供方与服务请求方之间的长连接,每个长连接上开始按照固定周期(即上述的初始预设周期)发送第一心跳包,如图2所示,可以按照每15s发送一次心跳包。检测在预设时间段内多个目标连接请求是否均连接成功,例如,检测10个心跳发送周期内(例如,150s)的目标连接请求是否均连接成功。
44.需要说明的是,目标连接请求至少包括:心跳包连接请求和服务连接请求,心跳包连接请求通过第一心跳包触发,服务连接请求通过待执行的目标服务触发。目标服务指的是服务提供方与服务请求方之间的正常服务请求。
45.如果在预设时间段内多个目标连接请求均连接成功,说明服务提供方与服务请求方之间的通讯比较稳定,可以对其心跳包的发送周期进行调整。如图3和图4所示的自适应拉长心跳周期的示意图。
46.根据服务提供方与服务请求方之间的服务确定对心跳包的发送周期的调整速率,也就是上述的第一目标调整速率,以及根据服务提供方与服务请求方之间的服务确定发送心跳包的第一目标周期。例如,如果服务提供方与服务请求方之间的服务是核心服务,那么对应的第一目标调整速率可以设置的慢一些,第一目标周期可以设置的短一些,如第一目标调整速率可以设置在10s/次,第一目标周期可以设置在45s。如果服务提供方与服务请求方之间的服务是非核心服务,那么对应的第一目标调整速率可以设置的快一些,第一目标周期可以设置的慢一些,如第一目标调整速率可以设置在5s/次,第一目标周期可以设置在60s。
47.需要说明的是,在自适应调整心跳包周期之后,如果出现服务请求失败或者心跳
请求连接失败的情况,会重置心跳包发送周期,以检验服务提供方与服务请求方之间的长连接是否通讯正常,如图5所示。
48.综上所述,通过上述步骤实现了实时自适应调整心跳频率,降低了无用心跳发送数量。达到了减少系统资源开销和cpu消耗的效果。
49.为了更加合理地对心跳包的发送周期和调整速率,在本技术实施例提供的心跳包的控制方法中,若在预设时间段内多个目标连接请求均连接成功,则确定第一目标调整速率和发送心跳包的第一目标周期包括以下步骤:确定服务提供方与服务请求方之间的目标服务的服务类型;依据服务类型,确定目标服务的服务等级;依据服务等级确定第一目标调整速率和第一目标周期。
50.依据服务等级确定第一目标调整速率和第一目标周期包括:若服务等级为第一等级,则确定第一目标调整速率为第一调整速率,以及确定第一目标周期为第一周期;若服务等级为第二等级,则确定第一目标调整速率为第二调整速率,以及确定第一目标周期为第二周期,其中,第一等级高于第二等级,第一调整速率小于第二调整速率,第一周期的时间小于第二周期的时间;若服务等级为第三等级,则确定第一目标调整速率为第三调整速率,以及确定第一目标周期为第三周期,其中,第二等级高于第三等级,第二调整速率小于第三调整速率,第二周期的时间小于第三周期的时间。
51.具体地,为了更加合理地对心跳包的发送周期和调整速率,根据服务提供方与服务请求方之间的服务的类型和重要性设置了不同的调整速率和发送周期。对于核心服务可能会影响到其他服务的正常运作,所以对于核心业务对应的第一目标调整速率可以设置的慢一些,第一目标周期可以设置的短一些,如第一目标调整速率可以设置在10s/次,第一目标周期可以设置在45s。如果服务提供方与服务请求方之间的服务是非核心服务,那么对应的第一目标调整速率可以设置的快一些,第一目标周期可以设置的慢一些,如第一目标调整速率可以设置在5s/次,第一目标周期可以设置在60s。
52.因此,确定服务提供方与服务请求方之间的目标服务的服务类型,然后根据服务类型,确定目标服务的服务等级。服务等级可以设置为第一等级、第二等级和第三等级、分别对应于核心服务、重要服务和普通服务。如果服务等级为第一等级,则确定第一目标调整速率为第一调整速率,以及确定第一目标周期为第一周期。如果服务等级为第二等级,则确定第一目标调整速率为第二调整速率,以及确定第一目标周期为第二周期,如果服务等级为第三等级,则确定第一目标调整速率为第三调整速率,以及确定第一目标周期为第三周期。
53.在一可选的实施例中,第一调整速率可以设置到15s/次,第一周期设置到30s,第二调整速率可以设置到10s/次,第二周期设置到45s,第三调整速率可以设置到5s/次,第三周期设置到60s。
54.综上所述,通过设置不同的调整速率和心跳包的发送周期,能够更加合理地对服务提供方与服务请求方之间的心跳包的发送周期进行调整,避免了出现大规模通讯中断的问题。
55.可选地,在本技术实施例提供的心跳包的控制方法中,若检测到存在目标连接请求未连接成功,该方法还包括:将心跳包的发送周期由初始预设周期缩短至第二目标周期,其中,第二目标周期的时间小于第一目标周期的时间;按照第二目标周期发送第二心跳包。
56.具体地,如果检测到存在目标连接请求未连接成功,说明服务提供方与服务请求方之间的通讯不会是很稳定好,需要立即调整心跳包的发送周期,例如,可以将心跳包的发送周期由45s调整至15s。通过缩短心跳包的发送周期能够及时确认服务提供方与服务请求方之间的通讯是否正常。
57.在按照第二目标周期发送第二心跳包之后,还包括以下步骤:判断由第二心跳包触发的心跳包连接请求是否连接成功;若由第二心跳包触发的心跳包连接请求连接成功,则依据第一目标调整速率,将心跳包的发送周期由第二目标周期拉长至第一目标周期。
58.具体地,在按照第二目标周期发送第二心跳包之后,判断由第二心跳包触发的心跳包连接请求是否连接成功,则说明之前的失败可能是由于网络延迟导致的,而不是服务提供方与服务请求方之间的通讯出现问题,因此,可以再次将心跳包的发送周期由第二目标周期拉长至第一目标周期。
59.如果经过判断由第二心跳包触发的心跳包连接请求连接失败,则执行以下步骤:确定由第二心跳包触发的心跳包连接请求的失败次数;若失败次数大于等于第一预设次数,则表征服务提供方与服务请求方之间的长连接已断开;若服务提供方与服务请求方之间的长连接已断开,则再次建立服务提供方与服务请求方之间的长连接。
60.具体地,统计由第二心跳包触发的心跳包连接请求的失败次数,如果失败次数超过三次(即上述的第一预设次数),说明服务提供方与服务请求方之间的长连接已断开。当确定服务提供方与服务请求方之间的长连接已断开时,重新建立服务提供方与服务请求方之间的长连接,以保证服务提供方与服务请求方之间的服务正常运作。
61.为了提高第一目标调整速率和第一目标周期的合理性,在本技术实施例提供的心跳包的控制方法中,在依据第一目标调整速率,将心跳包的发送周期由初始预设周期拉长至第一目标周期之后,该方法还包括:统计由拉长心跳包的发送周期导致连接失败的目标次数,以及统计在连接失败时的第三目标周期,其中,第三目标周期的时间小于等于第一目标周期的时间;依据目标次数和第三目标周期,对第一目标调整速率和第一目标周期进行调整。
62.具体地,统计由拉长心跳包的发送周期导致连接失败的目标次数,以及统计在连接失败时的第三目标周期,根据目标次数和第三目标周期,对第一目标调整速率和第一目标周期进行调整。例如,经统计在拉长心跳包的发送周期时,在将心跳包的发送周期设置在60s时,导致连接失败,说明心跳包的发送周期设置在60s可能时间过长,需要进行调整。
63.为了服务提供方与服务请求方之间的长连接的稳定性,在本技术实施例提供的心跳包的控制方法中,建立服务提供方与服务请求方之间的长连接包括以下步骤:通过服务请求方发送第一数据包发送至服务提供方,其中,服务提供方接收到第一数据包后,对第一数据包进行数据处理得到第二数据包,并将第二数据包返回至服务请求方;通过服务请求方对第二数据包进行检验,若检验通过则对第二数据包进行处理得到第三数据包;通过服务请求方发送第三数据包发送至服务提供方,其中,述服务提供方接收到第三数据包后,对第三数据包进行检验,若检验通过,则服务提供方与服务请求方之间的长连接建立成功。
64.具体地,服务提供方与服务请求方通过tcp三次握手来实现长连接的建立。
65.在一可选的实施例中,可以采用如图6所示的流程实现对心跳包的发送周期的动态调整。正常业务应用启动后,在服务提供方与服务请求方之间建立长连接,每个连接上开
始按照固定频率发送心跳包。统计请求失败数与心跳失败数,如果最近未发生上述失败,即根据服务等级,按照相应速率(即上述的调整速率)和上限(即上述的心跳包发送周期的上限),逐步调整心跳周期,(如图3和图4所示)。当发生业务请求失败或者心跳超时场景,重置心跳频率。通过自适应调整心跳频率。能大幅降低心跳发送总体数量,减少对应的资源开销。降低海量集群中的cpu开销。
66.本技术实施例提供的心跳包的控制方法,通过建立服务提供方与服务请求方之间的长连接,并按照初始预设周期发送第一心跳包,以通过第一心跳包检验长连接是否通讯正常;检测在预设时间段内多个目标连接请求是否均连接成功,其中,目标连接请求至少包括:心跳包连接请求和服务连接请求,心跳包连接请求由第一心跳包触发,服务连接请求由待执行的目标服务触发;若在预设时间段内多个目标连接请求均连接成功,则确定第一目标调整速率和发送心跳包的第一目标周期;依据第一目标调整速率,将心跳包的发送周期由初始预设周期拉长至第一目标周期,解决了相关技术中通过固定周期发送心跳包来保证消费方与提供方之前连接的可用性,导致心跳发送开销高的问题。在本方案中,通过检测在预设时间段内多个目标连接请求是否均连接成功的情况,实时自适应调整心跳频率,降低无用心跳发送数量,进而达到了降低心跳发送开销的效果。
67.需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
68.本技术实施例还提供了一种心跳包的控制装置,需要说明的是,本技术实施例的心跳包的控制装置可以用于执行本技术实施例所提供的用于心跳包的控制方法。以下对本技术实施例提供的心跳包的控制装置进行介绍。
69.图7是根据本技术实施例的心跳包的控制装置的示意图。如图7所示,该装置包括:第一建立单元701,检测单元702,第一确定单元703和第一处理单元704。
70.第一建立单元701,用于建立服务提供方与服务请求方之间的长连接,并按照初始预设周期发送第一心跳包,以通过第一心跳包检验长连接是否通讯正常;
71.检测单元702,用于检测在预设时间段内多个目标连接请求是否均连接成功,其中,目标连接请求至少包括:心跳包连接请求和服务连接请求,心跳包连接请求由第一心跳包触发,服务连接请求由待执行的目标服务触发;
72.第一确定单元703,用于若在预设时间段内多个目标连接请求均连接成功,则确定第一目标调整速率和发送心跳包的第一目标周期;
73.第一处理单元704,用于依据第一目标调整速率,将心跳包的发送周期由初始预设周期拉长至第一目标周期。
74.本技术实施例提供的心跳包的控制装置,通过第一建立单元701建立服务提供方与服务请求方之间的长连接,并按照初始预设周期发送第一心跳包,以通过第一心跳包检验长连接是否通讯正常;检测单元702检测在预设时间段内多个目标连接请求是否均连接成功,其中,目标连接请求至少包括:心跳包连接请求和服务连接请求,心跳包连接请求由第一心跳包触发,服务连接请求由待执行的目标服务触发;第一确定单元703若在预设时间段内多个目标连接请求均连接成功,则确定第一目标调整速率和发送心跳包的第一目标周期;第一处理单元704依据第一目标调整速率,将心跳包的发送周期由初始预设周期拉长至
第一目标周期,解决了相关技术中通过固定周期发送心跳包来保证消费方与提供方之前连接的可用性,导致心跳发送开销高的问题。在本方案中,通过检测在预设时间段内多个目标连接请求是否均连接成功的情况,实时自适应调整心跳频率,降低无用心跳发送数量,进而达到了降低心跳发送开销的效果。
75.可选地,在本技术实施例提供的心跳包的控制装置中,第一确定单元包括:第一确定模块,用于确定服务提供方与服务请求方之间的目标服务的服务类型;第二确定模块,用于依据服务类型,确定目标服务的服务等级;第三确定模块,用于依据服务等级确定第一目标调整速率和第一目标周期。
76.可选地,在本技术实施例提供的心跳包的控制装置中,第三确定模块包括:第一确定子模块,用于若服务等级为第一等级,则确定第一目标调整速率为第一调整速率,以及确定第一目标周期为第一周期;第二确定子模块,用于若服务等级为第二等级,则确定第一目标调整速率为第二调整速率,以及确定第一目标周期为第二周期,其中,第一等级高于第二等级,第一调整速率小于第二调整速率,第一周期的时间小于第二周期的时间;第三确定子模块,用于若服务等级为第三等级,则确定第一目标调整速率为第三调整速率,以及确定第一目标周期为第三周期,其中,第二等级高于第三等级,第二调整速率小于第三调整速率,第二周期的时间小于第三周期的时间。
77.可选地,在本技术实施例提供的心跳包的控制装置中,该装置还包括:第二处理单元,用于若检测到存在目标连接请求未连接成功,将心跳包的发送周期由初始预设周期缩短至第二目标周期,其中,第二目标周期的时间小于第一目标周期的时间;第一发送单元,用于按照第二目标周期发送第二心跳包。
78.可选地,在本技术实施例提供的心跳包的控制装置中,该装置还包括:判断单元,用于在按照第二目标周期发送第二心跳包之后,判断由第二心跳包触发的心跳包连接请求是否连接成功;第三处理单元,用于若由第二心跳包触发的心跳包连接请求连接成功,则依据第一目标调整速率,将心跳包的发送周期由第二目标周期拉长至第一目标周期。
79.可选地,在本技术实施例提供的心跳包的控制装置中,该装置还包括:第二确定单元,用于在判断由第二心跳包触发的心跳包连接请求是否连接成功之后,确定由第二心跳包触发的心跳包连接请求的失败次数;第三确定单元,用于若失败次数大于等于第一预设次数,则表征服务提供方与服务请求方之间的长连接已断开;第二建立单元,用于若服务提供方与服务请求方之间的长连接已断开,则再次建立服务提供方与服务请求方之间的长连接。
80.可选地,在本技术实施例提供的心跳包的控制装置中,该装置还包括:统计单元,用于在依据第一目标调整速率,将心跳包的发送周期由初始预设周期拉长至第一目标周期之后,统计由拉长心跳包的发送周期导致连接失败的目标次数,以及统计在连接失败时的第三目标周期,其中,第三目标周期的时间小于等于第一目标周期的时间;调整单元,用于依据目标次数和第三目标周期,对第一目标调整速率和第一目标周期进行调整。
81.可选地,在本技术实施例提供的心跳包的控制装置中,第一建立单元包括:第二发送单元,用于通过服务请求方发送第一数据包发送至服务提供方,其中,服务提供方接收到第一数据包后,对第一数据包进行数据处理得到第二数据包,并将第二数据包返回至服务请求方;检验单元,用于通过服务请求方对第二数据包进行检验,若检验通过则对第二数据
包进行处理得到第三数据包;第三发送单元,用于通过服务请求方发送第三数据包发送至服务提供方,其中,述服务提供方接收到第三数据包后,对第三数据包进行检验,若检验通过,则服务提供方与服务请求方之间的长连接建立成功。
82.心跳包的控制装置包括处理器和存储器,上述的第一建立单元701,检测单元702,第一确定单元703和第一处理单元704等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
83.处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现对心跳包的动态控制。
84.存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram),存储器包括至少一个存储芯片。
85.本发明实施例提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现心跳包的控制方法。
86.本发明实施例提供了一种处理器,处理器用于运行程序,其中,程序运行时执行心跳包的控制方法。
87.如图8所示,本发明实施例提供了一种电子设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:建立服务提供方与服务请求方之间的长连接,并按照初始预设周期发送第一心跳包,以通过第一心跳包检验长连接是否通讯正常;检测在预设时间段内多个目标连接请求是否均连接成功,其中,目标连接请求至少包括:心跳包连接请求和服务连接请求,心跳包连接请求由第一心跳包触发,服务连接请求由待执行的目标服务触发;若在预设时间段内多个目标连接请求均连接成功,则确定第一目标调整速率和发送心跳包的第一目标周期;依据第一目标调整速率,将心跳包的发送周期由初始预设周期拉长至第一目标周期。
88.可选地,若在预设时间段内多个目标连接请求均连接成功,则确定第一目标调整速率和发送心跳包的第一目标周期包括:确定服务提供方与服务请求方之间的目标服务的服务类型;依据服务类型,确定目标服务的服务等级;依据服务等级确定第一目标调整速率和第一目标周期。
89.可选地,依据服务等级确定第一目标调整速率和第一目标周期包括:若服务等级为第一等级,则确定第一目标调整速率为第一调整速率,以及确定第一目标周期为第一周期;若服务等级为第二等级,则确定第一目标调整速率为第二调整速率,以及确定第一目标周期为第二周期,其中,第一等级高于第二等级,第一调整速率小于第二调整速率,第一周期的时间小于第二周期的时间;若服务等级为第三等级,则确定第一目标调整速率为第三调整速率,以及确定第一目标周期为第三周期,其中,第二等级高于第三等级,第二调整速率小于第三调整速率,第二周期的时间小于第三周期的时间。
90.可选地,若检测到存在目标连接请求未连接成功,该方法还包括:将心跳包的发送周期由初始预设周期缩短至第二目标周期,其中,第二目标周期的时间小于第一目标周期的时间;按照第二目标周期发送第二心跳包。
91.可选地,在按照第二目标周期发送第二心跳包之后,该方法还包括:判断由第二心跳包触发的心跳包连接请求是否连接成功;若由第二心跳包触发的心跳包连接请求连接成
功,则依据第一目标调整速率,将心跳包的发送周期由第二目标周期拉长至第一目标周期。
92.可选地,在判断由第二心跳包触发的心跳包连接请求是否连接成功之后,该方法还包括:确定由第二心跳包触发的心跳包连接请求的失败次数;若失败次数大于等于第一预设次数,则表征服务提供方与服务请求方之间的长连接已断开;若服务提供方与服务请求方之间的长连接已断开,则再次建立服务提供方与服务请求方之间的长连接。
93.可选地,在依据第一目标调整速率,将心跳包的发送周期由初始预设周期拉长至第一目标周期之后,该方法还包括:统计由拉长心跳包的发送周期导致连接失败的目标次数,以及统计在连接失败时的第三目标周期,其中,第三目标周期的时间小于等于第一目标周期的时间;依据目标次数和第三目标周期,对第一目标调整速率和第一目标周期进行调整。
94.可选地,建立服务提供方与服务请求方之间的长连接包括:通过服务请求方发送第一数据包发送至服务提供方,其中,服务提供方接收到第一数据包后,对第一数据包进行数据处理得到第二数据包,并将第二数据包返回至服务请求方;通过服务请求方对第二数据包进行检验,若检验通过则对第二数据包进行处理得到第三数据包;通过服务请求方发送第三数据包发送至服务提供方,其中,述服务提供方接收到第三数据包后,对第三数据包进行检验,若检验通过,则服务提供方与服务请求方之间的长连接建立成功。
95.本文中的设备可以是服务器、pc、pad、手机等。
96.本技术还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:建立服务提供方与服务请求方之间的长连接,并按照初始预设周期发送第一心跳包,以通过第一心跳包检验长连接是否通讯正常;检测在预设时间段内多个目标连接请求是否均连接成功,其中,目标连接请求至少包括:心跳包连接请求和服务连接请求,心跳包连接请求由第一心跳包触发,服务连接请求由待执行的目标服务触发;若在预设时间段内多个目标连接请求均连接成功,则确定第一目标调整速率和发送心跳包的第一目标周期;依据第一目标调整速率,将心跳包的发送周期由初始预设周期拉长至第一目标周期。
97.可选地,若在预设时间段内多个目标连接请求均连接成功,则确定第一目标调整速率和发送心跳包的第一目标周期包括:确定服务提供方与服务请求方之间的目标服务的服务类型;依据服务类型,确定目标服务的服务等级;依据服务等级确定第一目标调整速率和第一目标周期。
98.可选地,依据服务等级确定第一目标调整速率和第一目标周期包括:若服务等级为第一等级,则确定第一目标调整速率为第一调整速率,以及确定第一目标周期为第一周期;若服务等级为第二等级,则确定第一目标调整速率为第二调整速率,以及确定第一目标周期为第二周期,其中,第一等级高于第二等级,第一调整速率小于第二调整速率,第一周期的时间小于第二周期的时间;若服务等级为第三等级,则确定第一目标调整速率为第三调整速率,以及确定第一目标周期为第三周期,其中,第二等级高于第三等级,第二调整速率小于第三调整速率,第二周期的时间小于第三周期的时间。
99.可选地,若检测到存在目标连接请求未连接成功,该方法还包括:将心跳包的发送周期由初始预设周期缩短至第二目标周期,其中,第二目标周期的时间小于第一目标周期的时间;按照第二目标周期发送第二心跳包。
100.可选地,在按照第二目标周期发送第二心跳包之后,该方法还包括:判断由第二心跳包触发的心跳包连接请求是否连接成功;若由第二心跳包触发的心跳包连接请求连接成功,则依据第一目标调整速率,将心跳包的发送周期由第二目标周期拉长至第一目标周期。
101.可选地,在判断由第二心跳包触发的心跳包连接请求是否连接成功之后,该方法还包括:确定由第二心跳包触发的心跳包连接请求的失败次数;若失败次数大于等于第一预设次数,则表征服务提供方与服务请求方之间的长连接已断开;若服务提供方与服务请求方之间的长连接已断开,则再次建立服务提供方与服务请求方之间的长连接。
102.可选地,在依据第一目标调整速率,将心跳包的发送周期由初始预设周期拉长至第一目标周期之后,该方法还包括:统计由拉长心跳包的发送周期导致连接失败的目标次数,以及统计在连接失败时的第三目标周期,其中,第三目标周期的时间小于等于第一目标周期的时间;依据目标次数和第三目标周期,对第一目标调整速率和第一目标周期进行调整。
103.可选地,建立服务提供方与服务请求方之间的长连接包括:通过服务请求方发送第一数据包发送至服务提供方,其中,服务提供方接收到第一数据包后,对第一数据包进行数据处理得到第二数据包,并将第二数据包返回至服务请求方;通过服务请求方对第二数据包进行检验,若检验通过则对第二数据包进行处理得到第三数据包;通过服务请求方发送第三数据包发送至服务提供方,其中,述服务提供方接收到第三数据包后,对第三数据包进行检验,若检验通过,则服务提供方与服务请求方之间的长连接建立成功。
104.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
105.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
106.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
107.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
108.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
109.存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。存储器是计算机可读介质的示例。
110.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
111.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
112.本领域技术人员应明白,本技术的实施例可提供为方法、系统或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
113.以上仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献