CN112751895B - 通信连接保活方法及其*** - Google Patents
通信连接保活方法及其*** Download PDFInfo
- Publication number
- CN112751895B CN112751895B CN201911046811.4A CN201911046811A CN112751895B CN 112751895 B CN112751895 B CN 112751895B CN 201911046811 A CN201911046811 A CN 201911046811A CN 112751895 B CN112751895 B CN 112751895B
- Authority
- CN
- China
- Prior art keywords
- connection
- time
- time bucket
- moment
- existing
- 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
Links
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/14—Session management
- H04L67/141—Setup of application sessions
-
- 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/142—Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请涉及通信技术领域,公开了一种通信连接保活方法及其***,可以极大地降低海量连接情况下的处理器占用率。其中,一个时间段被预先分割为多个时间片,每一个时间片对应一个时间桶;当服务器与客户端建立一个新连接时,计算该新连接的第一超时时刻,将该新连接的标识保存在该第一超时时刻对应的时间桶中;当所述服务器通过一个已有连接收到来自客户端的报文时,计算该已有连接的第二超时时刻,如果该第二超时时刻对应的时间桶不是该已有连接当前所在的时间桶,则将该已有连接的标识转移到该第二超时时刻对应的时间桶中;在当前时刻达到一个时间桶对应的时间片上界时,所述服务器批量关闭该时间桶中当前存在的各个连接。
Description
技术领域
本申请涉及通信领域,特别涉及通信连接保活技术。
背景技术
在很多互联网或物联网应用中,客户端和服务器之间需要建立和保持TCP长连接。所谓长连接,就是通信双方在建立TCP连接后进行数据通信,一次或若干次通信交互完成之后,不主动断开连接,而是保持TCP连接不释放,在随时需要通信的时候,不再需要重新建立连接。长连接可以提高通信速度、确保实时性、避免短时间内重复连接所造成的网络资源浪费,在即时通信、物联网等应用场景中有广泛应用。对于服务器来说,接入和保持海量的客户端长连接,需要付出大量的服务器资源(网络、内存、处理器)。由于很多客观原因(例如网络环境、客户端本身出现故障等),双方会建立一些无效的连接,既没有有效的数据通信,又不会主动关闭,称之为“死”连接。为了提高服务器资源的利用率,需要将“死”连接主动关闭以释放资源,这就是心跳保活机制。所谓心跳保活,就是在通信过程中,通信双方定期给对方发送心跳包(一种特殊的数据报文),表示发送方还处于“活着”的状态。服务器收到客户端定期发送的心跳包之后,就认为客户端还活着,反之,如果超过规定时间内没有收到心跳包,则认为客户端已死,需要将长连接关闭。因此,服务器需要管理所有客户端的连接会话,记录所有会话连接的超时时间,定期把超时的会话连接进行清除。
现有的连接保活方法是在每次客户端连接建立的时候,就设置一个定时器任务,指定超时时间之后就触发该定时器。如果定时器触发之前,该连接没有数据收发,则将超时连接关闭。
现有的连接保活方法在客户端数量比较少的时候运行没有问题,但是当客户端数量比较大的时候,该方法会产生大量的定时任务。对于每一次客户端连接,都要产生一个对应的定时任务,定时任务的数量等于客户端连接数,非常耗费处理器资源。
发明内容
本申请的目的在于提供一种通信连接保活方法及其***,可以极大地减少定时任务的数量,极大地降低海量连接情况下的处理器占用率。
本申请公开了一种通信连接保活方法,一个时间段被预先分割为多个时间片,每一个时间片对应一个时间桶,所述方法包括:
当服务器与客户端建立一个新连接时,计算该新连接的第一超时时刻,将该新连接的标识保存在该第一超时时刻对应的时间桶中;
当所述服务器通过一个已有连接收到来自客户端的报文时,计算该已有连接的第二超时时刻,如果该第二超时时刻对应的时间桶不是该已有连接当前所在的时间桶,则将该已有连接的标识转移到该第二超时时刻对应的时间桶中;
在当前时刻达到一个时间桶对应的时间片上界时,所述服务器批量关闭该时间桶中当前存在的各个连接。
在一个优选例中,所述连接的标识是会话句柄。
在一个优选例中,所述每一个时间片的时间长度是相同的。
在一个优选例中,当所述服务器检测到一个客户端的连接发生关闭事件后,从该连接所在的时间桶中删除该连接的标识。
在一个优选例中,所述服务器中运行有会话清理线程;
所述在当前时刻达到一个时间桶对应的时间片上界时,所述服务器批量关闭该时间桶中当前存在的各个连接,进一步包括循环执行的以下子步骤:
所述会话清理线程从当前未超时的各个时间桶对应的时间片上界中,获取距离当前时刻最接近的一个时间桶对应的时间片上界作为最近超时时刻,该时间桶作为第一时间桶;
所述会话清理线程在当前时间达到所述最近超时时刻后,关闭所述第一时间桶中当前存在的各个连接。
在一个优选例中,所述服务器中运行有IO处理线程;
所述IO处理线程用于执行下列步骤:
所述当服务器与客户端建立一个新连接时,计算该新连接的第一超时时刻,将该新连接的标识保存在该第一超时时刻对应的时间桶中的步骤,以及
所述当所述服务器通过一个已有连接收到来自客户端的报文时,计算该已有连接的第二超时时刻,如果该第二超时时刻对应的时间桶不是该已有连接当前所在的时间桶,则将该已有连接的标识转移到该第二超时时刻对应的时间桶中的步骤。
在一个优选例中,所述连接为TCP长连接。
本申请还公开了一种通信连接保活***包括:
时间桶划分模块,用于将一个时间段分割为多个时间片,每一个时间片对应一个时间桶;
新连接处理模块,用于当服务器与客户端建立一个新连接时,计算该新连接的第一超时时刻,将该新连接的标识保存在该第一超时时刻对应的时间桶中;
已有连接处理模块,用于当所述服务器通过一个已有连接收到来自客户端的报文时,计算该已有连接的第二超时时刻,如果该第二超时时刻对应的时间桶不是该已有连接当前所在的时间桶,则将该已有连接的标识转移到该第二超时时刻对应的时间桶中;
批量关闭模块,用于在当前时刻达到一个时间桶对应的时间片上界时,所述服务器批量关闭该时间桶中当前存在的各个连接。
在一个优选例中,所述连接的标识是会话句柄。
在一个优选例中,所述每一个时间片的时间长度是相同的。
在一个优选例中,所述已有连接处理模块还用于当所述检测到一个客户端的连接发生关闭事件后,从该连接所在的时间桶中删除该连接的标识。
在一个优选例中,所述连接为TCP长连接。
在一个优选例中,所述***包括:IO处理线程和会话清理线程;
所述IO处理线程包括所述时间桶划分模块,所述新连接处理模块,和所述已有连接处理模块;
所述会话清理线程包括所述批量关闭模块。
本申请还公开了一种通信连接保活***包括:
存储器,用于存储计算机可执行指令;以及,
处理器,与所述存储器耦合,用于在执行所述计算机可执行指令时实现如前文描述的方法中的步骤。
本申请还公开了一种计算机可读存储介质所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现如前文描述的方法中的步骤。
本申请实施方式的技术方案可以极大地减少定时任务的数量,因为消耗处理器资源较多的定时任务大大减少了,海量连接情况下的处理器占用率也极大地降低了。
本申请的说明书中记载了大量的技术特征,分布在各个技术方案中,如果要罗列出本申请所有可能的技术特征的组合(即技术方案)的话,会使得说明书过于冗长。为了避免这个问题,本申请上述发明内容中公开的各个技术特征、在下文各个实施方式和例子中公开的各技术特征、以及附图中公开的各个技术特征,都可以自由地互相组合,从而构成各种新的技术方案(这些技术方案均应该视为在本说明书中已经记载),除非这种技术特征的组合在技术上是不可行的。例如,在一个例子中公开了特征A+B+C,在另一个例子中公开了特征A+B+D+E,而特征C和D是起到相同作用的等同技术手段,技术上只要择一使用即可,不可能同时采用,特征E技术上可以与特征C相组合,则,A+B+C+D的方案因技术不可行而应当不被视为已经记载,而A+B+C+E的方案应当视为已经被记载。
附图说明
图1是根据本申请第一实施方式的通信连接保活方法流程示意图;
图2是根据本申请第一实施方式的时间切割以及任意时刻t到时间桶的映射关系示意图;
图3是根据本申请第一实施方式的连接初始化时新连接的标识保存到对应时间桶的示意图;
图4是根据本申请第一实施方式的连接保活时已有连接更新所属的时间桶的示意图;
图5是根据本申请第一实施方式的在当前时刻达到一个时间桶对应的时间片上界时,服务器批量关闭该时间桶中当前存在的各个连接的示意图;
图6是根据本申请第二实施方式的通信连接保活***结构示意图。
具体实施方式
在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
部分概念的说明:
长连接,一种长时间维持的连接方式,具体地说,通信双方在建立TCP连接后进行数据通信,一次或若干次通信交互完成之后,不主动断开连接,而是保持TCP连接不释放,在随时需要通信的时候,不再需要重新建立连接。
服务器:是指网络中能对其它设备提供服务的计算机***。服务器服务的对象通常称为终端或客户端,服务器与客户端之间可以通过有线或者无线的方式通信连接。服务器的实现方式是多种多样的,可以是单台的计算机设备,也可以是多台计算机设备的组合(例如集群服务器,云服务器等)。服务器在一些应用场景中也可以被称为服务端,云端等。
客户端:或称为终端、用户端,是指与服务器相对应,为客户提供本地服务的设备。
心跳保活:就是在通信过程中,通信双方定期给对方发送心跳包(一种特殊的数据报文),表示发送方正处于正常工作的状态。
TCP:Transmission Control Protocol传输控制协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC793定义。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请的实施方式作进一步地详细描述。
本申请的第一实施方式涉及一种通信连接保活方法,其流程如图1所示。
一个时间段被预先分割为多个时间片,每一个时间片对应一个时间桶。在一个实施例中,将一段连续的时间按照固定间隔DT切割成片段,每一个片段对应一个时间桶,建立从任意时刻t到时间桶的映射关系B(t),例如B(t1)映射到时间桶B0,B(t2)映射到时间桶B1,如图2所示。
图1所示的方法包括以下步骤:
在步骤102中,当服务器与客户端建立一个新连接时,计算该新连接的第一超时时刻,将该新连接的标识保存在该第一超时时刻对应的时间桶中。一个超时时刻所对应的时间桶就是该超时时刻所在的时间片所对应的时间桶。例如每个时间片是一分钟,一个时间桶X对应的时间片a是11:50:00-11:51:00,而某个连接的超时时刻是11:50:05,那这个连接的超时时刻就落在时间片a中,该超时时刻就对应于时间桶X。在一个实施例中,当客户端C1新建连接的时候,计算出超时的时刻t’=t+DT(假设连接超时时间为DT),计算出B(t’)=B1,因此将连接C1的会话句柄保存在编号为B1的时间桶中,如图3所示。
此后进入步骤104,当服务器通过一个已有连接收到来自客户端的报文时,计算该已有连接的第二超时时刻,如果该第二超时时刻对应的时间桶不是该已有连接当前所在的时间桶,则将该已有连接的标识转移到该第二超时时刻对应的时间桶中。例如,当收到客户端C1的数据报文的时候,将该客户端新的超时时刻t’刷新为now+DT,其中now表示当前时刻,如果得到的时间桶比C1原来所在的时间桶更新,即:B(t’)>B(t),则将连接C1转移到B(t’)对应的时间桶中去。如图4所示。
此后进入步骤106,在当前时刻达到一个时间桶对应的时间片上界时,服务器批量关闭该时间桶中当前存在的各个连接。例如,随着时间流逝,当前时刻达到时间桶B2的上界(即对应时间片的结束时间)时,由于连接C1、C7、C8没有及时转移,则服务器将C1、C7、C8全部清除掉,如图5所示。
现有技术的定时任务数量和连接的数量相同,而连接的数量可以是海量的,而本实施方式的技术方案使用的定时任务很少,有限的定时任务主要是用于时间桶的超时判断,但时间桶本身的数量是固定的且十分有限的,因此可以极大地减少定时任务的数量,因为消耗处理器资源较多的定时任务大大减少了,海量连接情况下的处理器占用率也极大地降低了。
可选地,在一个实施例中,步骤106包括以下循环执行的以下子步骤:
子步骤1,服务器从当前未超时的各个时间桶对应的时间片上界中,获取距离当前时刻最接近的一个时间桶对应的时间片上界作为最近超时时刻,该时间桶作为第一时间桶。
子步骤2,服务器在当前时间达到最近超时时刻后,关闭第一时间桶中当前存在的各个连接。
可选地,在一个实施例中,连接(包括新连接和已有连接)的标识是会话句柄。在其他某些实施例中,连接的标识也可以是其他类型的标识,只要可以唯一地识别一个连接即可。例如,在某些场景中如果每一个连接对应的IP或MAC地址是全局唯一的,则可以用IP或MAC地址作为连接的标识。又如,在某些场景中如果每一个客户端只有一个连接,则可以用客户端标识作为连接的标识。又如,在某些场景中每次新增一个连接时可以为该连接分配一个专用的唯一数字来识别这个连接。
可选地,在一个实施例中,每一个时间片的时间长度是相同的。在其他某些实施例中,时间片的长度也可以不相同,有些时间片的长度可以大一些,有些时间片的长度可以小一些。只要每一个时间片的长度是确定的,并且可以根据各个时间片的长度计算出每一个时间片的起始时间和结束时间(即时间桶对应的时间片的下界和上界)即可。
可选地,在一个实施例中,当服务器检测到一个客户端的连接发生关闭事件后,从该连接所在的时间桶中删除该连接的标识。
可选地,在一个实施例中,连接为TCP长连接。在其他某些实施例中,也可以是其他类型的连接,只要该连接有维持至少一定时间的需要即可。
可选地,在一个实施例中,服务器中运行有两类线程——会话清理线程和IO处理线程。其中,会话清理线程用于执行会话清理的相关任务,包括但不限于执行步骤106(及其子步骤)。IO处理线程用于执行与IO(输入输出)相关的处理任务,包括但不限于执行步骤102、步骤104和“当服务器检测到一个客户端的连接发生关闭事件后,从该连接所在的时间桶中删除该连接的标识”的步骤。
通过会话清理线程实现步骤106的方法有多种,下面举一个具体的实现例子。
1.初始化:t为当前***毫秒时间的变量,to为离当前时间最近一个时间桶的超时时刻(时间桶的上界即为时间桶的整体超时时刻)to=UP(B(t))。
2.将t更新为***当前时刻。
3.如果t<to(t所在的时间桶还未到超时时刻),则线程睡眠(to-t)毫秒,并且跳转到步骤2;
4.否则(t所在时间桶已经到超时时刻),将B(t)中的所有会话批量删除和关闭连接。超时的时间桶中没有被转移走的会话全是超时的。
5.将to更新为离当前时间最近一个时间桶的超时时刻to+DT,并跳转到步骤2。
本申请的第二实施方式涉及一种通信连接保活***,其结构如图2所示,该通信连接保活***包括:
时间桶划分模块,用于将一个时间段分割为多个时间片,每一个时间片对应一个时间桶。
新连接处理模块,用于当服务器与客户端建立一个新连接时,计算该新连接的第一超时时刻,将该新连接的标识保存在该第一超时时刻对应的时间桶中。
已有连接处理模块,用于当服务器通过一个已有连接收到来自客户端的报文时,计算该已有连接的第二超时时刻,如果该第二超时时刻对应的时间桶不是该已有连接当前所在的时间桶,则将该已有连接的标识转移到该第二超时时刻对应的时间桶中。该模块还用于当检测到一个客户端的连接发生关闭事件后,从该连接所在的时间桶中删除该连接的标识。
批量关闭模块,用于在当前时刻达到一个时间桶对应的时间片上界时,服务器批量关闭该时间桶中当前存在的各个连接。
可选地,在一个实施例中,***包括:IO处理线程和会话清理线程。IO处理线程的功能包括但不限于时间桶划分模块,新连接处理模块,和已有连接处理模块。会话清理线程的功能包括但不限于批量关闭模块。
可选地,在一个实施例中,连接(包括新连接和已有连接)的标识是会话句柄。在其他某些实施例中,连接的标识也可以是其他类型的标识,只要可以唯一地识别一个连接即可。例如,在某些场景中如果每一个连接对应的IP或MAC地址是全局唯一的,则可以用IP或MAC地址作为连接的标识。又如,在某些场景中如果每一个客户端只有一个连接,则可以用客户端标识作为连接的标识。又如,在某些场景中每次新增一个连接时为该连接分配一个专用的唯一数字来识别这个连接。
可选地,在一个实施例中,每一个时间片的时间长度是相同的。在其他某些实施例中,时间片的长度也可以不相同,有些时间片的长度可以大一些,有些时间片的长度可以小一些。只要每一个时间片的长度是确定的,可以根据各个时间片的长度计算出每一个时间片的起始时间和结束时间(即时间桶对应的时间片的下界和上界)即可。
可选地,在一个实施例中,当服务器检测到一个客户端的连接发生关闭事件后,从该连接所在的时间桶中删除该连接的标识。
可选地,在一个实施例中,连接为TCP长连接。在其他某些实施例中,也可以是其他类型的连接,只要该连接有维持至少一定时间的需要即可。
第一实施方式是与本实施方式相对应的方法实施方式,第一实施方式中的技术细节可以应用于本实施方式,本实施方式中的技术细节也可以应用于第一实施方式。
需要说明的是,本领域技术人员应当理解,上述通信连接保活***的实施方式中所示的各模块的实现功能可参照前述通信连接保活方法的相关描述而理解。上述通信连接保活***的实施方式中所示的各模块的功能可通过运行于处理器上的程序(可执行指令)而实现,也可通过具体的逻辑电路而实现。本申请实施例上述通信连接保活***如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。
相应地,本申请实施方式还提供一种计算机可读存储介质,其中存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现本申请的各方法实施方式。计算机可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括但不限于,相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读存储介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
此外,本申请实施方式还提供一种通信连接保活***,其中包括用于存储计算机可执行指令的存储器,以及,处理器;该处理器用于在执行该存储器中的计算机可执行指令时实现上述各方法实施方式中的步骤。其中,该处理器可以是中央处理单元(CentralProcessing Unit,简称“CPU”),还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,简称“DSP”)、专用集成电路(Application Specific IntegratedCircuit,简称“ASIC”)等。前述的存储器可以是只读存储器(read-only memory,简称“ROM”)、随机存取存储器(random access memory,简称“RAM”)、快闪存储器(Flash)、硬盘或者固态硬盘等。本发明各实施方式所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
需要说明的是,在本专利的申请文件中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本专利的申请文件中,如果提到根据某要素执行某行为,则是指至少根据该要素执行该行为的意思,其中包括了两种情况:仅根据该要素执行该行为、和根据该要素和其它要素执行该行为。多个、多次、多种等表达包括2个、2次、2种以及2个以上、2次以上、2种以上。
在本说明书提及的所有文献都被认为是整体性地包括在本申请的公开内容中,以便在必要时可以作为修改的依据。此外应理解,以上所述仅为本说明书的较佳实施例而已,并非用于限定本说明书的保护范围。凡在本说明书一个或多个实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例的保护范围之内。
在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
Claims (15)
1.一种通信连接保活方法,其特征在于,一个时间段被预先分割为多个时间片,每一个时间片对应一个时间桶,所述方法包括:
当服务器与客户端建立一个新连接时,计算该新连接的第一超时时刻,将该新连接的标识保存在该第一超时时刻对应的时间桶中;
当所述服务器通过一个已有连接收到来自客户端的报文时,计算该已有连接的第二超时时刻,如果该第二超时时刻对应的时间桶不是该已有连接当前所在的时间桶,则将该已有连接的标识转移到该第二超时时刻对应的时间桶中;
在当前时刻达到一个时间桶对应的时间片上界时,所述服务器批量关闭该时间桶中当前存在的各个连接。
2.如权利要求1所述的通信连接保活方法,其特征在于,所述连接的标识是会话句柄。
3.如权利要求1所述的通信连接保活方法,其特征在于,所述每一个时间片的时间长度是相同的。
4.如权利要求1所述的通信连接保活方法,其特征在于,当所述服务器检测到一个客户端的连接发生关闭事件后,从该连接所在的时间桶中删除该连接的标识。
5.如权利要求1所述的通信连接保活方法,其特征在于,所述服务器中运行有会话清理线程;
所述在当前时刻达到一个时间桶对应的时间片上界时,所述服务器批量关闭该时间桶中当前存在的各个连接,进一步包括循环执行的以下子步骤:
所述会话清理线程从当前未超时的各个时间桶对应的时间片上界中,获取距离当前时刻最接近的一个时间桶对应的时间片上界作为最近超时时刻,该时间桶作为第一时间桶;
所述会话清理线程在当前时间达到所述最近超时时刻后,关闭所述第一时间桶中当前存在的各个连接。
6.如权利要求1所述的通信连接保活方法,其特征在于,所述服务器中运行有IO处理线程;
所述IO处理线程用于执行下列步骤:
所述当服务器与客户端建立一个新连接时,计算该新连接的第一超时时刻,将该新连接的标识保存在该第一超时时刻对应的时间桶中的步骤,以及
所述当所述服务器通过一个已有连接收到来自客户端的报文时,计算该已有连接的第二超时时刻,如果该第二超时时刻对应的时间桶不是该已有连接当前所在的时间桶,则将该已有连接的标识转移到该第二超时时刻对应的时间桶中的步骤。
7.如权利要求1-6中任意一项所述的通信连接保活方法,其特征在于,所述连接为TCP长连接。
8.一种通信连接保活***,其特征在于,包括:
时间桶划分模块,用于将一个时间段分割为多个时间片,每一个时间片对应一个时间桶;
新连接处理模块,用于当服务器与客户端建立一个新连接时,计算该新连接的第一超时时刻,将该新连接的标识保存在该第一超时时刻对应的时间桶中;
已有连接处理模块,用于当所述服务器通过一个已有连接收到来自客户端的报文时,计算该已有连接的第二超时时刻,如果该第二超时时刻对应的时间桶不是该已有连接当前所在的时间桶,则将该已有连接的标识转移到该第二超时时刻对应的时间桶中;
批量关闭模块,用于在当前时刻达到一个时间桶对应的时间片上界时,所述服务器批量关闭该时间桶中当前存在的各个连接。
9.如权利要求8所述的通信连接保活***,其特征在于,所述连接的标识是会话句柄。
10.如权利要求8所述的通信连接保活***,其特征在于,所述每一个时间片的时间长度是相同的。
11.如权利要求8所述的通信连接保活***,其特征在于,所述已有连接处理模块还用于当所述检测到一个客户端的连接发生关闭事件后,从该连接所在的时间桶中删除该连接的标识。
12.如权利要求8所述的通信连接保活***,其特征在于,所述连接为TCP长连接。
13.如权利要求8-12中任意一项所述的通信连接保活***,其特征在于,所述***包括:IO处理线程和会话清理线程;
所述IO处理线程包括所述时间桶划分模块,所述新连接处理模块,和所述已有连接处理模块;
所述会话清理线程包括所述批量关闭模块。
14.一种通信连接保活***,其特征在于,包括:
存储器,用于存储计算机可执行指令;以及,
处理器,与所述存储器耦合,用于在执行所述计算机可执行指令时实现如权利要求1至7中任意一项所述的方法中的步骤。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现如权利要求1至7中任意一项所述的方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911046811.4A CN112751895B (zh) | 2019-10-30 | 2019-10-30 | 通信连接保活方法及其*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911046811.4A CN112751895B (zh) | 2019-10-30 | 2019-10-30 | 通信连接保活方法及其*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112751895A CN112751895A (zh) | 2021-05-04 |
CN112751895B true CN112751895B (zh) | 2022-02-25 |
Family
ID=75640729
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911046811.4A Active CN112751895B (zh) | 2019-10-30 | 2019-10-30 | 通信连接保活方法及其*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112751895B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115866018B (zh) * | 2023-02-28 | 2023-05-16 | 浪潮电子信息产业股份有限公司 | 业务处理方法、装置、电子设备及计算机可读存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6446225B1 (en) * | 1998-04-23 | 2002-09-03 | Microsoft Corporation | Server system with scalable session timeout mechanism |
CN106059956A (zh) * | 2016-06-24 | 2016-10-26 | 汉柏科技有限公司 | 一种用于网络设备会话的时间队列处理方法以及装置 |
CN107040576B (zh) * | 2016-12-08 | 2020-03-10 | 阿里巴巴集团控股有限公司 | 信息推送方法及装置、通讯*** |
US10292061B2 (en) * | 2017-06-13 | 2019-05-14 | Netscout Systems, Inc | Method of troubleshooting using customizable troubleshooting indicators over buckets of variable time |
CN109104326B (zh) * | 2018-06-05 | 2021-08-20 | 创新先进技术有限公司 | 超时处理方法及装置和电子设备 |
CN109144416B (zh) * | 2018-08-03 | 2020-04-28 | 华为技术有限公司 | 查询数据的方法和装置 |
CN110134537A (zh) * | 2019-05-05 | 2019-08-16 | 东软集团股份有限公司 | 多核***中的会话表项超时处理方法、装置及多核*** |
-
2019
- 2019-10-30 CN CN201911046811.4A patent/CN112751895B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112751895A (zh) | 2021-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9984013B2 (en) | Method, controller, and system for service flow control in object-based storage system | |
WO2022093319A1 (en) | Methods, systems, and computer readable media for rank processing for network function selection | |
WO2018121334A1 (zh) | 一种提供网页应用服务的方法、装置、电子设备及*** | |
EP3720094B1 (en) | Information processing method, apparatus, device and system | |
CN106230997B (zh) | 一种资源调度方法和装置 | |
EP2795849B1 (en) | Method and apparatus for messaging in the cloud | |
CN103618800A (zh) | 订阅通知的实现方法和装置 | |
US11425209B2 (en) | Communication system | |
CN109561128B (zh) | 数据传输方法和装置 | |
US20210160344A1 (en) | Communication between client device and server | |
CN112751895B (zh) | 通信连接保活方法及其*** | |
US11647103B1 (en) | Compression-as-a-service for data transmissions | |
CN112512021A (zh) | 拥塞控制方法、装置、设备、介质及*** | |
CN108111630B (zh) | 一种Zookeeper集群***及其连接方法和*** | |
CN110674172A (zh) | 数据查询方法及装置 | |
CN106790354B (zh) | 一种防数据拥堵的通信方法及其装置 | |
US11893395B2 (en) | Restart controller | |
CN108667920B (zh) | 一种雾计算环境业务流量加速***及其业务流量加速方法 | |
CN115037627B (zh) | 网络配置信息处理方法、sdn控制器、***及存储介质 | |
CN114244850B (zh) | 数据包处理方法、装置、计算机设备和存储介质 | |
CN113553194B (zh) | 硬件资源管理方法、设备及存储介质 | |
CN113852560A (zh) | 一种bgp对等体之间的路由信息更新方法、设备及介质 | |
CN114385372A (zh) | 一种消息处理方法、装置及存储介质 | |
CN113765711B (zh) | 一种网络设备保活方法及装置 | |
CN113904953B (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 |