CN109831474B - http长连接的保活系统、方法、服务器及可读存储介质 - Google Patents

http长连接的保活系统、方法、服务器及可读存储介质 Download PDF

Info

Publication number
CN109831474B
CN109831474B CN201811414231.1A CN201811414231A CN109831474B CN 109831474 B CN109831474 B CN 109831474B CN 201811414231 A CN201811414231 A CN 201811414231A CN 109831474 B CN109831474 B CN 109831474B
Authority
CN
China
Prior art keywords
keep
alive
thread
current
threads
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.)
Active
Application number
CN201811414231.1A
Other languages
English (en)
Other versions
CN109831474A (zh
Inventor
孙玉柱
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Advanced New Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Advanced New Technologies Co Ltd filed Critical Advanced New Technologies Co Ltd
Priority to CN201811414231.1A priority Critical patent/CN109831474B/zh
Publication of CN109831474A publication Critical patent/CN109831474A/zh
Application granted granted Critical
Publication of CN109831474B publication Critical patent/CN109831474B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Telephonic Communication Services (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本说明书实施例公开了一种http长连接的保活系统,管控服务器控制每个保活线程按照对应的目标心跳间隔时间进行心跳检测,即可以确定管控服务器对心跳检测对应的线程进行管控,而管控服务器还管控业务服务器中的第一线程池中线程,使得管控服务器统一对业务服务器中的线程进行统一管控,在线程进行统一管控的情况下,能够有效降低业务请求和心跳请求对应同一个http连接出现的概率,从而能够降低数据包错乱的概率,提高租用、可用和过期的http连接正常运转的概率。

Description

http长连接的保活系统、方法、服务器及可读存储介质
技术领域
本说明书实施例涉及数据处理技术领域,尤其涉及一种http长连接的保活系统、方法、服务器及可读存储介质。
背景技术
随着互联网技术的飞速发展,使得客户端和服务器的交互技术也飞速发展,而现有的客户端和服务器进行交互时通常使用http协议进行交互,http属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议。在使用http协议进行交互时,客户端和服务器每进行一次HTTP操作,就建立一次连接,其连接可以为http短连接或http长连接。
而现有的HTTP长连接的应用场景中,通过时采用应用层定时发送心跳包的方式保持连接的存活,心跳包的发送时间间隔固定,不具备自适应特性。
发明内容
本说明书实施例第一方面提供了一种http长连接的保活系统,包括:所述系统包括业务服务器和管控服务器,其中,所述管控服务器用于管控所述业务服务器中的第一线程池;
所述业务服务器用于接收多个业务请求,响应所述多个业务请求,在所述第一线程池中创建与每个业务请求对应的线程,通过与每个业务请求对应的线程创建出与每个业务请求对应的http连接进行数据交换,所述http连接包括http长连接和http短连接;
所述管控服务器,用于实时获取所述第一线程池中创建出http长连接对应的当前保活线程,并为所述当前保活线程中的每个保活线程分配一个随机数;根据每个保活线程分配的随机数和已获取的基准心跳间隔时间,获取每个保活线程对应的目标心跳间隔时间;控制每个保活线程按照对应的目标心跳间隔时间进行心跳检测。
本说明书实施例第二方面提供了一种http长连接的保活方法,应用于管控服务器中,包括:
实时获取在业务服务器中的第一线程池中创建出http长连接对应的当前保活线程,并为所述当前保活线程中的每个保活线程分配一个随机数;
根据每个保活线程分配的随机数和已获取的基准心跳间隔时间,获取每个保活线程对应的目标心跳间隔时间;
控制每个保活线程按照对应的目标心跳间隔时间进行心跳检测。
本说明书实施例第三方面还提供了一种管控服务器,包括:
保活线程获取单元,用于实时获取在业务服务器中的第一线程池中创建出http长连接对应的当前保活线程;
随机数分配单元,用于为所述当前保活线程中的每个保活线程分配一个随机数;
目标心跳间隔时间获取单元,用于根据每个保活线程分配的随机数和已获取的基准心跳间隔时间,获取每个保活线程对应的目标心跳间隔时间;
心跳检测单元,用于控制每个保活线程按照对应的目标心跳间隔时间进行心跳检测。
本说明书实施例第四方面还提供了一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述http长连接的保活方法的步骤。
本说明书实施例第五方面还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时上述http长连接的保活方法的步骤。
本说明书实施例的有益效果如下:
基于上述技术方案,管控服务器控制每个保活线程按照对应的目标心跳间隔时间进行心跳检测,即可以确定管控服务器对心跳检测对应的线程进行管控,而管控服务器还管控业务服务器中的第一线程池中线程,使得管控服务器统一对业务服务器中的线程进行统一管控,在线程进行统一管控的情况下,能够有效降低业务请求和心跳请求对应同一个http连接出现的概率,从而能够降低数据包错乱的概率,提高租用、可用和过期的http连接正常运转的概率。
以及,在所述当前保活线程为多个线程时,所述管控服务器还用于为所述当前保活线程中的每个保活线程分配一个随机数,再根据每个保活线程分配的随机数和已获取的基准心跳间隔时间可以使得多个保活线程对应的目标心跳间隔时间的取值不同,促使多个保活线程间隔不同的时间进行心跳检测,从而能够有效降低所述多个保活线程的心跳检测同时过期出现的概率,还能够适用于占据保活连接的场景并适用于高并发场景。
附图说明
图1为本说明书实施例中http长连接的保活系统的结构示意图;
图2为本说明书实施例中http长连接的保活方法的方法流程图;
图3为本说明书实施例中管控业务服务器的结构示意图;
图4为本说明书实施例中服务器的结构示意图。
具体实施方式
为了更好的理解上述技术方案,下面通过附图以及具体实施例对本说明书实施例的技术方案做详细的说明,应当理解本说明书实施例以及实施例中的具体特征是对本说明书实施例技术方案的详细的说明,而不是对本说明书技术方案的限定,在不冲突的情况下,本说明书实施例以及实施例中的技术特征可以相互组合。
第一方面,如图1所示,本说明书实施例提供一种HTTP长连接的通用保活系统,包括:业务服务器100和管控服务器200,其中,管控服务器200用于管控业务服务器100中的第一线程池;
业务服务器100用于接收多个业务请求,响应所述多个业务请求,在所述第一线程池中创建与每个业务请求对应的线程,通过与每个业务请求对应的线程创建出与每个业务请求对应的http连接进行数据交换,所述http连接包括http长连接和http短连接;
管控服务器200,用于实时获取所述第一线程池中创建出http长连接对应的当前保活线程,并为所述当前保活线程中的每个保活线程分配一个随机数;根据每个保活线程分配的随机数和已获取的基准心跳间隔时间,获取每个保活线程对应的目标心跳间隔时间;控制每个保活线程按照对应的目标心跳间隔时间进行心跳检测。
本说明书实施例中,管控服务器200监测到业务服务器100接收到所述多个业务请求中的首个业务请求时,用于获取所述首个业务请求的实时性参数,并初始化心跳配置参数,其中,所述心跳配置参数包括所述第二线程池中的线程数量、最大线程保活数和心跳超时时间等参数,构建本地缓存。如此,使得业务服务器100首先使用所述初始化心跳配置参数进行运行,然后管控服务器200根据运行时环境自适应的调整所述初始化心跳配置参数。
本说明书实施例中,所述http长连接指的是在传输层使用TCP协议,在数据传输完成后保持TCP连接不断开,等待在同域名/地址下继续使用这个通道进行数据传输;所述http短连接指的是在传输层使用TCP协议,在数据传输完成后连接断开。
本说明书实施例中,所述业务请求可以包括支付请求、退款请求和提现请求等,所述业务请求为http请求,其中,所述支付请求的实时性参数
本说明书实施例中,管控服务器200获取所述基准心跳间隔时间,具体包括:通过探测法获取基准心跳间隔时间。如此,可以首先获取所述基准心跳间隔时间的心跳取值范围,然后从所述心跳取值范围中寻找首个探测失败时间点;再根据所述首个探测失败时间点,利用二分法获取最佳时间点,并将所述最佳时间点作为所述基准心跳间隔时间。
具体来讲,管控服务器200在获取所述基准心跳间隔时间时,所述心跳取值范围可以是预先设置的,所述心跳取值范围可以为[1,Tmax],其中,Tmax为大于2的整数,且所述基准心跳间隔时间对应的单位为秒(s)。当然,所述基准心跳间隔时间对应的单位可以为毫秒等,本说明书实施例不作具体限制。
具体地,管控服务器200在获取到所述心跳取值范围之后,可以按照指数法从所述心跳取值范围中寻找首个探测失败时间点。
例如,在所述心跳取值范围为[1,Tmax]时,若按照所述指数法探测轨迹为2s、4s、8s、16s和32s,且探测到首个探测失败时间点为32s;探测失败则停止,否则直到Tmax停止;然后按照二分法获取最佳时间点,由于所述首个探测失败时间点为32s,则获取在所述首个探测失败时间点之前的探测时间点为16s,则在[16,31]之间继续选择探测时间,若探测时间点为24s和28s(假设28探测失败);然后在[24,27]之间继续选择探测时间,若选择的探测时间点为26s;然后在[24,25]之间继续探测,若选择的探测时间点为25s(假设25探测失败),则获取到最佳时间点为24s,即所述基准心跳间隔时间为24s;若25s未探测失败,则获取到最佳时间点为25s,即所述基准心跳间隔时间为25s。
本说明书实施例中,管控服务器200,用于获取当前保活线程,并为所述当前保活线程中的每个保活线程分配一个随机数;根据每个保活线程分配的随机数和所述基准心跳间隔时间,获取每个保活线程对应的目标心跳间隔时间;控制每个保活线程按照对应的目标心跳间隔时间进行心跳检测。
具体来讲,管控服务器200为所述当前保活线程中的每个保活线程分配一个随机数时,可以获取所述当前保活线程的保活数量,根据所述保活数量确定随机数的随机取值范围;在所述随机取值范围内为每个保活线程分配一个随机数,得到每个保活线程对应的随机数。
本说明书实施例中,所述保活数量可以用m表示,其中,m为不小于1的整数,则根据m,确定所述随机取值范围为[0,m+1],即所述随机取值范围最小为0且最大为m+1,然后在[0,m+1]内为每个保活线程分配一个随机数r。
本说明书实施例中,管控服务器200用于根据每个保活线程分配的随机数和所述基准心跳间隔时间,获取每个保活线程对应的目标心跳间隔时间时,可以将每个保活线程分配的随机数和所述基准心跳间隔时间之和作为该保活线程对应的目标心跳间隔时间;也可以将每个保活线程分配的随机数和所述基准心跳间隔时间的乘积作为该保活线程对应的目标心跳间隔时间等。
本说明书实施例中,所述基准心跳间隔时间可以用T0表示,若在[0,m+1]内为某个保活线程分配了一个随机数r1,则该保活线程对应的目标心跳间隔时间为T0+r1,当然,也可以为T0×r1。
例如,若所述当前保活线程为线程a1、a2、a3、a4、a5和a6,此时可知m=6,则确定所述随机取值范围为[0,7],若在[0,m+1]内为a1分配的一个随机数为2,则确定a1对应的目标心跳间隔时间为T0+2;相应地,若在[0,7]内为a2分配的一个随机数为4,则确定a2对应的目标心跳间隔时间为T0+4;若在[0,7]内为a3分配的一个随机数为0,则确定a3对应的目标心跳间隔时间为T0+0;若在[0,7]内为a4分配的一个随机数为7,则确定a4对应的目标心跳间隔时间为T0+7;若在[0,7]内为a5分配的一个随机数为6,则确定a5对应的目标心跳间隔时间为T0+6;若在[0,7]内为a6分配的一个随机数为3,则确定a1对应的目标心跳间隔时间为T0+3。
如此,在当前保活线程为多个线程时,通过此种方式可以使得多个保活线程对应的目标心跳间隔时间的取值不同,从而使得多个保活线程间隔不同的时间进行心跳检测,从而能够有效降低所述多个保活线程的心跳检测同时过期出现的概率,还能够适用于占据保活连接的场景并适用于高并发场景。
本说明书实施例中,管控服务器200用于控制每个保活线程按照对应的目标心跳间隔时间进行心跳检测时,获取在业务服务器100的第二线程池中为每个保活线程生成对应的心跳请求,利用每个保活线程对应的心跳请求控制每个保活线程按照对应的目标心跳间隔时间进行心跳检测。其中,管控服务器200用于管控所述第二线程池。
例如,业务服务器100中创建有线程池b1和线程池b2,在接收到每个业务请求之后,在b1创建与每个业务请求对应的线程,以及在b2中创建与每个心跳请求对应的线程,b1中的线程用于创建http连接,而b2中的线程用于执行心跳检测。
如此,使得管控服务器200统一管控业务服务器100中的所述第一线程池和所述第二线程池,所述第一线程池中的线程创建的http连接而b2中的线程用于执行心跳检测而不会创建http连接,如此,能够有效降低业务请求和心跳请求对应同一个http连接出现的概率,从而能够降低数据包错乱的概率,提高租用、可用和过期的http连接正常运转的概率。
本说明书实施例中,管控服务器200,用于获取当前请求量和当前网络环境参数,根据所述当前请求量和所述当前网络环境参数,确定出能够工作的当前保活线程总量。
本说明书实施例中,所述网络环境参数包括网络质量、网络状态、NAT超时和路由跳转异常等参数。管控服务器200可以通过监测或查询的方式获取到所述当前请求量和所述当前网络环境参数,其中,所述当前请求量的单位可以每秒的请求数量或每分钟的请求数量等。
本说明书实施例中,管控服务器200用于在获取所述当前请求量和所述当前网络环境参数之后,首先检测所述当前网络环境参数是否达到预设网络环境参数,若达到所述预设网络环境参数,则根据所述当前请求量,确定出当前能够工作的当前保活线程总量;若未达到所述预设网络环境参数,则从所述第一线程池获取当前保活线程数作为所述当前保活线程总量。
本说明书实施例中,管控服务器200用于根据所述当前请求量,确定出当前能够工作的当前保活线程总量时,还需从所述第一线程池中获取当前保活线程数,然后将所述当前保活线程数与所述当前请求量进行比较,得到比较结果;检测所述比较结果是否超过设定阈值;若所述比较结果超过所述设定阈值,则确定出增加的保活线程数,根据所述当前保活线程数和所述增加的保活线程数,确定出所述保活线程数总量,其中,所述当前保活线程总量不超过最大保活线程数。
本说明书实施例中,所述最大保活线程数可以由系统或人工进行设定,也可以根据系统的实际情况进行设定;进一步地,所述设定阈值可以由系统或人工进行设定。
本说明书实施例中,管控服务器200用于确定出增加的保活线程数时,可以根据所述设定阈值和所述当前保活线程数,确定出所述增加的保活线程数;也可以设置一个增加值作为所述增加的保活线程数,所述增加值可以是一个固定值或可变化的值;在所述增加值为固定值时,所述增加值可以固定为20或30等不小于1的整数;所述增加值是一个可变化的值时,所述增加值可以在预设取值范围内进行变动,所述预设取值范围中的最小值为不小于1的整数,以及其中的最大值小于所述最大保活线程数。
本说明书实施例中,管控服务器200用于根据所述设定阈值和所述当前保活线程数,确定出所述增加的保活线程数时,可以将所述设定阈值和所述当前保活线程数之和与预设百分数的乘积作为所述增加的保活线程数。
例如,若所述当前保活线程数用L表示,所述设定阈值用P表示,所述当前请求量用Q表示,首先将L和Q进行比较,得到比较结果为L-Q;然后判断(L-Q)是否大于P,若(L-Q)>P,则确定出所述增加的保活线程数为(L+P)×所述预设百分数,此时,确定出所述当前保活线程总量为L+(L+P)×所述预设百分数。
如此,使得管控服务器200能够根据所述当前请求量和所述当前网络环境参数,自动调整所述当前保活线程总量,提高系统的自动调整能力。
第二方面,本说明书实施例提供了一种http长连接的保活方法,应用于管控服务器中,如图2所示,包括:
S202、实时获取在业务服务器中的第一线程池中创建出http长连接对应的当前保活线程,并为所述当前保活线程中的每个保活线程分配一个随机数;
S204、根据每个保活线程分配的随机数和已获取的基准心跳间隔时间,获取每个保活线程对应的目标心跳间隔时间;
S206、控制每个保活线程按照对应的目标心跳间隔时间进行心跳检测。
在一种可选实施方式中,所述获取所述基准心跳间隔时间的步骤,具体包括:
通过探测法获取基准心跳间隔时间。
在一种可选实施方式中,所述通过探测法获取基准心跳间隔时间,具体包括:
获取所述基准心跳间隔时间的心跳取值范围;
从所述心跳取值范围中寻找首个探测失败时间点;
根据所述首个探测失败时间点,利用二分法获取最佳时间点,并将所述最佳时间点作为所述基准心跳间隔时间。
在一种可选实施方式中,所述为所述当前保活线程中的每个保活线程分配一个随机数,具体包括:
获取所述当前保活线程的保活数量,并根据所述保活数量确定随机数的随机取值范围;在所述随机取值范围内为每个保活线程分配一个随机数,得到每个保活线程对应的随机数。
在一种可选实施方式中,所述控制每个保活线程按照对应的目标心跳间隔时间进行心跳检测,具体包括:
获取在所述业务服务器的第二线程池中为每个保活线程生成对应的心跳请求,利用每个保活线程对应的心跳请求控制每个保活线程按照对应的目标心跳间隔时间进行心跳检测。
在一种可选实施方式中,所述方法还包括:
获取当前请求量和当前网络环境参数;
根据所述当前请求量和所述当前网络环境参数,确定出能够工作的当前保活线程总量。
在一种可选实施方式中,所述根据所述当前请求量和所述当前网络环境参数,确定出能够工作的当前保活线程总量,具体包括:
检测所述当前网络环境参数是否达到预设网络环境参数;
若达到所述预设网络环境参数,则根据所述当前请求量,确定出当前能够工作的当前保活线程总量;若未达到所述预设网络环境参数,则从所述第一线程池获取当前保活线程数作为所述当前保活线程总量。
在一种可选实施方式中,所述根据所述当前请求量,确定出当前能够工作的当前保活线程总量,具体包括:
从所述第一线程池中获取当前保活线程数;
将所述当前保活线程数与所述当前请求量进行比较,得到比较结果;
检测所述比较结果是否超过设定阈值;
若所述比较结果超过所述设定阈值,则确定出增加的保活线程数,根据所述当前保活线程数和所述增加的保活线程数,确定出所述保活线程数总量,其中,所述当前保活线程总量不超过最大保活线程数。
第三方面,基于与第二方面提供的方法相同的技术构思,本说明书实施例提供了一种管控服务器,如图3所示,包括:
保活线程获取单元301,用于实时获取在业务服务器中的第一线程池中创建出http长连接对应的当前保活线程;
随机数分配单元302,用于为所述当前保活线程中的每个保活线程分配一个随机数;
目标心跳间隔时间获取单元303,用于根据每个保活线程分配的随机数和已获取的基准心跳间隔时间,获取每个保活线程对应的目标心跳间隔时间;
心跳检测单元304,用于控制每个保活线程按照对应的目标心跳间隔时间进行心跳检测。
在一种可选实施方式中,所述管控服务器还包括:
基准心跳间隔时间获取单元,用于通过探测法获取基准心跳间隔时间。
在一种可选实施方式中,所述基准心跳间隔时间获取单元,具体用于获取所述基准心跳间隔时间的心跳取值范围;从所述心跳取值范围中寻找首个探测失败时间点;根据所述首个探测失败时间点,利用二分法获取最佳时间点,并将所述最佳时间点作为所述基准心跳间隔时间。
在一种可选实施方式中,随机数分配单元302,具体用于获取所述当前保活线程的保活数量,并根据所述保活数量确定随机数的随机取值范围;在所述随机取值范围内为每个保活线程分配一个随机数,得到每个保活线程对应的随机数。
在一种可选实施方式中,心跳检测单元304,具体用于获取在所述业务服务器的第二线程池中为每个保活线程生成对应的心跳请求,利用每个保活线程对应的心跳请求控制每个保活线程按照对应的目标心跳间隔时间进行心跳检测。
在一种可选实施方式中,所述管控服务器还包括:
信息获取单元,用于获取当前请求量和当前网络环境参数;
当前保活线程总量获取单元,用于根据所述当前请求量和所述当前网络环境参数,确定出能够工作的当前保活线程总量。
在一种可选实施方式中,所述当前保活线程总量获取单元,具体用于检测所述当前网络环境参数是否达到预设网络环境参数;若达到所述预设网络环境参数,则根据所述当前请求量,确定出当前能够工作的当前保活线程总量;若未达到所述预设网络环境参数,则从所述第一线程池获取当前保活线程数作为所述当前保活线程总量。
在一种可选实施方式中,所述当前保活线程总量获取单元,具体用于从所述第一线程池中获取当前保活线程数;将所述当前保活线程数与所述当前请求量进行比较,得到比较结果;检测所述比较结果是否超过设定阈值;若所述比较结果超过所述设定阈值,则确定出增加的保活线程数,根据所述当前保活线程数和所述增加的保活线程数,确定出所述保活线程数总量,其中,所述当前保活线程总量不超过最大保活线程数。
第四方面,基于与前述实施例中http长连接的保活方法同样的发明构思,本说明书实施例还提供一种移动终端,如图4所示,包括存储器404、处理器402及存储在存储器404上并可在处理器402上运行的计算机程序,所述处理器402执行所述程序时实现前文所述http长连接的保活方法的任一方法的步骤。
其中,在图4中,总线架构(用总线400来代表),总线400可以包括任意数量的互联的总线和桥,总线400将包括由处理器402代表的一个或多个处理器和存储器404代表的存储器的各种电路连接在一起。总线400还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口405在总线400和接收器401和发送器403之间提供接口。接收器401和发送器403可以是同一个元件,即收发机,提供用于在传输介质上与各种其他装置通信的单元。处理器402负责管理总线400和通常的处理,而存储器404可以被用于存储处理器402在执行操作时所使用的数据。
第五方面,基于与前述实施例中http长连接的保活方法的发明构思,本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前文所述http长连接的保活方法的任一方法的步骤。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的设备。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令设备的制造品,该指令设备实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本说明书的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本说明书范围的所有变更和修改。
显然,本领域的技术人员可以对本说明书进行各种改动和变型而不脱离本说明书的精神和范围。这样,倘若本说明书的这些修改和变型属于本说明书权利要求及其等同技术的范围之内,则本说明书也意图包含这些改动和变型在内。

Claims (23)

1.一种超本文传输协议http长连接的保活方法,应用于管控服务器中,包括:
实时获取在业务服务器中的第一线程池中创建出http长连接对应的当前保活线程,并为所述当前保活线程中的每个保活线程分配一个随机数;
根据每个保活线程分配的随机数和已获取的基准心跳间隔时间,获取每个保活线程对应的目标心跳间隔时间;
控制每个保活线程按照对应的目标心跳间隔时间进行心跳检测;
其中,所述为所述当前保活线程中的每个保活线程分配一个随机数,具体包括:
获取所述当前保活线程的保活数量,并根据所述保活数量确定随机数的随机取值范围;在所述随机取值范围内为每个保活线程分配一个随机数,得到每个保活线程对应的随机数。
2.如权利要求1所述的方法,所述获取所述基准心跳间隔时间的步骤,具体包括:
通过探测法获取基准心跳间隔时间。
3.如权利要求2所述的方法,所述通过探测法获取基准心跳间隔时间,具体包括:
获取所述基准心跳间隔时间的心跳取值范围;
从所述心跳取值范围中寻找首个探测失败时间点;
根据所述首个探测失败时间点,利用二分法获取最佳时间点,并将所述最佳时间点作为所述基准心跳间隔时间。
4.权利要求1所述的方法,所述控制每个保活线程按照对应的目标心跳间隔时间进行心跳检测,具体包括:
获取在所述业务服务器的第二线程池中为每个保活线程生成对应的心跳请求,利用每个保活线程对应的心跳请求控制每个保活线程按照对应的目标心跳间隔时间进行心跳检测。
5.如权利要求1所述的方法,还包括:
获取当前请求量和当前网络环境参数;
根据所述当前请求量和所述当前网络环境参数,确定出能够工作的当前保活线程总量。
6.如权利要求5所述的方法,所述根据所述当前请求量和所述当前网络环境参数,确定出能够工作的当前保活线程总量,具体包括:
检测所述当前网络环境参数是否达到预设网络环境参数;
若达到所述预设网络环境参数,则根据所述当前请求量,确定出当前能够工作的当前保活线程总量;若未达到所述预设网络环境参数,则从所述第一线程池获取当前保活线程数作为所述当前保活线程总量。
7.如权利要求6所述的方法,所述根据所述当前请求量,确定出当前能够工作的当前保活线程总量,具体包括:
从所述第一线程池中获取当前保活线程数;
将所述当前保活线程数与所述当前请求量进行比较,得到比较结果;
检测所述比较结果是否超过设定阈值;
若所述比较结果超过所述设定阈值,则确定出增加的保活线程数,根据所述当前保活线程数和所述增加的保活线程数,确定出所述保活线程数总量,其中,所述当前保活线程总量不超过最大保活线程数。
8.一种管控服务器,包括:
保活线程获取单元,用于实时获取在业务服务器中的第一线程池中创建出http长连接对应的当前保活线程;
随机数分配单元,用于为所述当前保活线程中的每个保活线程分配一个随机数;
目标心跳间隔时间获取单元,用于根据每个保活线程分配的随机数和已获取的基准心跳间隔时间,获取每个保活线程对应的目标心跳间隔时间;
心跳检测单元,用于控制每个保活线程按照对应的目标心跳间隔时间进行心跳检测;
其中,所述随机数分配单元,具体用于获取所述当前保活线程的保活数量,并根据所述保活数量确定随机数的随机取值范围;在所述随机取值范围内为每个保活线程分配一个随机数,得到每个保活线程对应的随机数。
9.如权利要求8所述的管控服务器,还包括:
基准心跳间隔时间获取单元,用于通过探测法获取基准心跳间隔时间。
10.如权利要求9所述的管控服务器,所述基准心跳间隔时间获取单元,具体用于获取所述基准心跳间隔时间的心跳取值范围;从所述心跳取值范围中寻找首个探测失败时间点;根据所述首个探测失败时间点,利用二分法获取最佳时间点,并将所述最佳时间点作为所述基准心跳间隔时间。
11.如权利要求8所述的管控服务器,所述心跳检测单元,具体用于获取在所述业务服务器的第二线程池中为每个保活线程生成对应的心跳请求,利用每个保活线程对应的心跳请求控制每个保活线程按照对应的目标心跳间隔时间进行心跳检测。
12.如权利要求8所述的管控服务器,还包括:
信息获取单元,用于获取当前请求量和当前网络环境参数;
当前保活线程总量获取单元,用于根据所述当前请求量和所述当前网络环境参数,确定出能够工作的当前保活线程总量。
13.如权利要求12所述的管控服务器,所述当前保活线程总量获取单元,具体用于检测所述当前网络环境参数是否达到预设网络环境参数;若达到所述预设网络环境参数,则根据所述当前请求量,确定出当前能够工作的当前保活线程总量;若未达到所述预设网络环境参数,则从所述第一线程池获取当前保活线程数作为所述当前保活线程总量。
14.如权利要求13所述的管控服务器,所述当前保活线程总量获取单元,具体用于从所述第一线程池中获取当前保活线程数;将所述当前保活线程数与所述当前请求量进行比较,得到比较结果;检测所述比较结果是否超过设定阈值;若所述比较结果超过所述设定阈值,则确定出增加的保活线程数,根据所述当前保活线程数和所述增加的保活线程数,确定出所述保活线程数总量,其中,所述当前保活线程总量不超过最大保活线程数。
15.一种超文本传输协议http长连接的保活系统,包括:所述系统包括业务服务器和管控服务器,其中,所述管控服务器用于管控所述业务服务器中的第一线程池;
所述业务服务器用于接收多个业务请求,响应所述多个业务请求,在所述第一线程池中创建与每个业务请求对应的线程,通过与每个业务请求对应的线程创建出与每个业务请求对应的http连接进行数据交换,所述http连接包括http长连接和http短连接;
所述管控服务器,用于实时获取所述第一线程池中创建出http长连接对应的当前保活线程,并为所述当前保活线程中的每个保活线程分配一个随机数;根据每个保活线程分配的随机数和已获取的基准心跳间隔时间,获取每个保活线程对应的目标心跳间隔时间;控制每个保活线程按照对应的目标心跳间隔时间进行心跳检测;
所述管控服务器用于为所述当前保活线程中的每个保活线程分配一个随机数,具体包括:
所述管控服务器用于获取所述当前保活线程的保活数量,并根据所述保活数量确定随机数的随机取值范围;在所述随机取值范围内为每个保活线程分配一个随机数,得到每个保活线程对应的随机数。
16.如权利要求15所述的系统,所述管控服务器获取所述基准心跳间隔时间,具体包括:
所述管控服务器用于通过探测法获取基准心跳间隔时间。
17.如权利要求16所述的系统,所述管控服务器用于通过探测法获取基准心跳间隔时间,具体包括:
所述管控服务器用于获取所述基准心跳间隔时间的心跳取值范围;从所述心跳取值范围中寻找首个探测失败时间点;再根据所述首个探测失败时间点,利用二分法获取最佳时间点,并将所述最佳时间点作为所述基准心跳间隔时间。
18.权利要求15所述的系统,所述管控服务器用于控制每个保活线程按照对应的目标心跳间隔时间进行心跳检测,具体包括:
所述管控服务器用于获取在所述业务服务器的第二线程池中为每个保活线程生成对应的心跳请求,利用每个保活线程对应的心跳请求控制每个保活线程按照对应的目标心跳间隔时间进行心跳检测。
19.如权利要求18所述的系统,所述管控服务器,还用于获取当前请求量和当前网络环境参数,根据所述当前请求量和所述当前网络环境参数,确定出能够工作的当前保活线程总量。
20.如权利要求19所述的系统,所述管控服务器用于根据所述当前请求量和所述当前网络环境参数,确定出能够工作的当前保活线程总量,具体包括:
所述管控服务器用于检测所述当前网络环境参数是否达到预设网络环境参数,若达到所述预设网络环境参数,则根据所述当前请求量,确定出当前能够工作的当前保活线程总量;若未达到所述预设网络环境参数,则从所述第一线程池获取当前保活线程数作为所述当前保活线程总量。
21.如权利要求20所述的系统,所述管控服务器用于根据所述当前请求量,确定出当前能够工作的当前保活线程总量,具体包括:
所述管控服务器用于从所述第一线程池中获取当前保活线程数,并将所述当前保活线程数与所述当前请求量进行比较,得到比较结果;检测所述比较结果是否超过设定阈值;若所述比较结果超过所述设定阈值,则确定出增加的保活线程数,根据所述当前保活线程数和所述增加的保活线程数,确定出所述保活线程数总量,其中,所述当前保活线程总量不超过最大保活线程数。
22.一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1-7任一项所述方法的步骤。
23.一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现权利要求1-7任一项所述方法的步骤。
CN201811414231.1A 2018-11-26 2018-11-26 http长连接的保活系统、方法、服务器及可读存储介质 Active CN109831474B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811414231.1A CN109831474B (zh) 2018-11-26 2018-11-26 http长连接的保活系统、方法、服务器及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811414231.1A CN109831474B (zh) 2018-11-26 2018-11-26 http长连接的保活系统、方法、服务器及可读存储介质

Publications (2)

Publication Number Publication Date
CN109831474A CN109831474A (zh) 2019-05-31
CN109831474B true CN109831474B (zh) 2021-07-13

Family

ID=66859090

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811414231.1A Active CN109831474B (zh) 2018-11-26 2018-11-26 http长连接的保活系统、方法、服务器及可读存储介质

Country Status (1)

Country Link
CN (1) CN109831474B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110572474B (zh) * 2019-09-26 2021-09-21 四川长虹电器股份有限公司 用于嵌入式终端长连接通讯的方法
CN112363849B (zh) * 2020-10-23 2022-11-11 中国电子科技集团公司第三十研究所 一种战术环境下轻量化服务交互协议方法
CN114338816A (zh) * 2021-12-22 2022-04-12 阿里巴巴(中国)有限公司 无服务器架构下的并发控制方法、装置、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1281183A (zh) * 1999-07-14 2001-01-24 Lg情报通信株式会社 复制处理器及其异常双态的控制方法
CN102843250A (zh) * 2011-06-21 2012-12-26 中兴通讯股份有限公司 一种心跳周期的自适应方法和装置
CN106685748A (zh) * 2015-11-05 2017-05-17 中移(杭州)信息技术有限公司 一种心跳信息发送方法、服务器及终端
CN106803833A (zh) * 2015-11-26 2017-06-06 北京百度网讯科技有限公司 长连接中心跳的处理方法、装置及系统
CN107645529A (zh) * 2016-07-21 2018-01-30 腾讯科技(深圳)有限公司 心跳包发送方法及装置
CN108494615A (zh) * 2018-02-09 2018-09-04 东峡大通(北京)管理咨询有限公司 确定心跳周期的方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104703146B (zh) * 2013-12-09 2019-03-08 腾讯科技(深圳)有限公司 信息推送方法、客户端及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1281183A (zh) * 1999-07-14 2001-01-24 Lg情报通信株式会社 复制处理器及其异常双态的控制方法
CN102843250A (zh) * 2011-06-21 2012-12-26 中兴通讯股份有限公司 一种心跳周期的自适应方法和装置
CN106685748A (zh) * 2015-11-05 2017-05-17 中移(杭州)信息技术有限公司 一种心跳信息发送方法、服务器及终端
CN106803833A (zh) * 2015-11-26 2017-06-06 北京百度网讯科技有限公司 长连接中心跳的处理方法、装置及系统
CN107645529A (zh) * 2016-07-21 2018-01-30 腾讯科技(深圳)有限公司 心跳包发送方法及装置
CN108494615A (zh) * 2018-02-09 2018-09-04 东峡大通(北京)管理咨询有限公司 确定心跳周期的方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种自适应心跳间隔保活TCP 连接的方法;栗永胜 等;《计算机应用与软件》;20180131;第150-151页 *

Also Published As

Publication number Publication date
CN109831474A (zh) 2019-05-31

Similar Documents

Publication Publication Date Title
CN108924221B (zh) 分配资源的方法和装置
CN109831474B (zh) http长连接的保活系统、方法、服务器及可读存储介质
US10361928B2 (en) Cluster instance management system
US20210337046A1 (en) Intelligent scheduling method, terminal device, edge node cluster and intelligent scheduling system
CN103746977A (zh) 一种Linux服务器的连接方法和装置
CN107566786A (zh) 一种获取监控视频的方法、装置及终端设备
CN109769029B (zh) 基于用电信息采集系统的通信连接方法及终端设备
CN108933829A (zh) 一种负载均衡方法及装置
CN106851799B (zh) 一种长连接中心跳包的发送方法及装置
CN105335231B (zh) 一种服务端线程的动态分配方法和设备
CN110691127B (zh) 数据获取控制系统、数据获取控制方法及相关装置
CN103188574A (zh) 传输网络视频的方法及系统
CN107172204A (zh) 高可用高负载的工单处理系统及工单处理方法
CN109561054A (zh) 一种数据传输方法、控制器及接入设备
CN106209875A (zh) 基于多业务服务器的业务处理方法及业务服务器
US8769104B2 (en) System and method for loading web page using multiple paths in multiple interface circumstances
CN110007940B (zh) 灰度发布的验证方法、系统、服务器及可读存储介质
CN103580951A (zh) 多个信息系统的输出比较方法
CN106469091A (zh) 用于分配可用区的方法和装置
CN104754029A (zh) 确定主管理服务器的方法、装置和系统
CN108391268A (zh) 上线控制方法和装置
CN107729435A (zh) 分布式文件系统任务分派的方法、装置、设备和存储介质
CN108737223B (zh) 基于负载均衡的健康咨询方法、装置、平台和存储介质
CN113300966A (zh) 流量控制方法、装置、系统以及电子设备
CN104702409A (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
TA01 Transfer of patent application right

Effective date of registration: 20201012

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20201012

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant