CN115022386B - 一种会话处理的方法和装置 - Google Patents
一种会话处理的方法和装置 Download PDFInfo
- Publication number
- CN115022386B CN115022386B CN202210689336.8A CN202210689336A CN115022386B CN 115022386 B CN115022386 B CN 115022386B CN 202210689336 A CN202210689336 A CN 202210689336A CN 115022386 B CN115022386 B CN 115022386B
- Authority
- CN
- China
- Prior art keywords
- long connection
- application service
- network proxy
- service
- communication session
- 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
- 238000003672 processing method Methods 0.000 title description 2
- 238000004891 communication Methods 0.000 claims abstract description 128
- 238000000034 method Methods 0.000 claims abstract description 121
- 230000008569 process Effects 0.000 claims abstract description 66
- 238000012545 processing Methods 0.000 claims abstract description 62
- 238000013508 migration Methods 0.000 claims description 31
- 230000005012 migration Effects 0.000 claims description 31
- 238000012544 monitoring process Methods 0.000 claims description 19
- 238000010586 diagram Methods 0.000 description 15
- 238000004590 computer program Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 238000012546 transfer Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
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/148—Migration or transfer of 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/141—Setup of application sessions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明实施例提供了一种会话处理的方法和装置,该方法包括:网络代理端与服务端建立针对服务端中发布的第一应用服务的第一长连接,以使用户终端通过第一长连接与第一应用服务进行通信会话;网络代理端在服务端对第一应用服务进行更新发布时,断开第一长连接,并与服务端建立针对服务端中更新发布的第二应用服务的第二长连接;网络代理端将用户终端中基于第一长连接的通信会话迁移至第二应用服务,以由第二应用服务基于第二长连接处理通信会话。通过本发明实施例,实现了在应用服务更新发布时通过网络代理端迁移基于长连接的会话,避免了应用服务更新发布时导致长连接断开而进行重连接,保证了服务端的稳定性。
Description
技术领域
本发明涉及网络技术领域,特别是涉及一种会话处理的方法和装置。
背景技术
随着互联网技术的发展,用户终端的数量越来越多,服务端需要处理与用户终端的通信会话数量也越来越多,在用户终端和服务端之间通过TCP(Transmission ControlProtocol,传输控制协议)长连接来进行通信会话的情况下,当服务端中应用服务更新发布时,会导致用户终端和服务端之间的长连接断开,用户终端可以发起重新连接请求。然而,由于用户终端的数量较多,若在短时间内大量的用户终端发起重新连接请求,将会影响服务端的稳定性,且在断开连接到重新建立连接期间,消息是不可达的,影响通信质量。
发明内容
鉴于上述问题,提出了以便提供克服上述问题或者至少部分地解决上述问题的一种会话处理的方法和装置,包括:
一种会话处理的方法,应用于网络代理端,该方法包括:
网络代理端与服务端建立针对服务端中发布的第一应用服务的第一长连接,以使用户终端通过第一长连接与第一应用服务进行通信会话;
网络代理端在服务端对第一应用服务进行更新发布时,断开第一长连接,并与服务端建立针对服务端中更新发布的第二应用服务的第二长连接;
网络代理端将用户终端中基于第一长连接的通信会话迁移至第二应用服务,以由第二应用服务基于第二长连接处理通信会话。
可选地,网络代理端将用户终端中基于第一长连接的通信会话迁移至第二应用服务,以由第二应用服务基于第二长连接处理通信会话,包括:
网络代理端从用户终端获取基于第一长连接的会话信息;
网络代理端将会话信息发送至第二应用服务,以由第二应用服务基于第二长连接恢复会话信息对应的通信会话。
可选地,该方法还包括:
网络代理端在对网络代理服务进行更新发布的情况下,根据基于未更新发布的网络代理服务的连接数,确定目标下线速率;
网络代理端按照目标下线速率,对基于未更新发布的网络代理服务的连接进行下线。
可选地,在根据基于未更新发布的网络代理服务的连接数,确定目标下线速率之前,还包括:
网络代理端确定目标连接在更新发布预设时长后的剩余百分比;其中,目标连接为基于未更新发布的网络代理服务的连接;
网络代理端在剩余百分比小于或等于预设剩余百分比时,执行根据基于未更新发布的网络代理服务的连接数,确定目标下线速率。
一种会话处理的方法,应用于用户终端,该方法包括:
用户终端通过第一长连接与服务端中发布的第一应用服务进行通信会话,第一长连接为网络代理端与服务端建立的针对第一应用服务的长连接;
用户终端在服务端对第一应用服务进行更新发布时,通过网络代理端将基于第一长连接的通信会话迁移至服务端中更新发布的第二应用服务,以由第二应用服务基于第二长连接处理通信会话,第二长连接为网络代理端断开第一长连接后与服务端建立针对第二应用服务的长连接。
可选地,通过网络代理端将基于第一长连接的通信会话迁移至服务端中更新发布的第二应用服务,以由第二应用服务基于第二长连接处理通信会话,包括:
用户终端将基于第一长连接的会话信息发送至网络代理端,以通过网络代理端将会话信息发送至第二应用服务,并由第二应用服务基于第二长连接恢复会话信息对应的通信会话。
可选地,在将基于第一长连接的会话信息发送至网络代理端之前,方法还包括:
用户终端对会话信息进行序列化处理。
可选地,该方法还包括:
用户终端在服务端对第一应用服务进行更新发布时,停止针对长连接重建立的监听。
一种会话处理的方法,应用于服务端,该方法包括:
服务端与网络代理端建立针对服务端中发布的第一应用服务的第一长连接,以使用户终端通过第一长连接与第一应用服务进行通信会话;
服务端在对第一应用服务进行更新发布时,断开第一长连接,并与网络代理端建立针对服务端中更新发布的第二应用服务的第二长连接;
服务端通过第二应用服务,基于第二长连接处理用户终端中基于第一长连接的通信会话,通信会话为用户终端通过网络代理端迁移的。
可选地,服务端通过第二应用服务,基于第二长连接处理用户终端中基于第一长连接的通信会话,包括:
服务端通过第二应用服务,接收网络代理端发送的会话信息,会话信息为网络代理端从用户终端获取基于第一长连接的会话信息;
服务端通过第二应用服务,基于第二长连接恢复会话信息对应的通信会话。
可选地,会话信息为由用户终端进行序列化处理后的会话信息,在服务端通过第二应用服务,基于第二长连接恢复会话信息对应的通信会话之前,该方法还包括:
服务端通过第二应用服务,对序列化处理后的会话信息进行反序列化处理。
一种会话处理的装置,应用于网络代理端,该装置包括:
代理端第一长连接建立模块,用于与服务端建立针对服务端中发布的第一应用服务的第一长连接,以使用户终端通过第一长连接与第一应用服务进行通信会话;
代理端第二长连建立模块,用于在服务端对第一应用服务进行更新发布时,断开第一长连接,并与服务端建立针对服务端中更新发布的第二应用服务的第二长连接;
代理端通信会话迁移模块,用于将用户终端中基于第一长连接的通信会话迁移至第二应用服务,以由第二应用服务基于第二长连接处理通信会话。
一种会话处理的装置,应用于用户终端,该装置包括:
终端第一长连接通信会话模块,用于通过第一长连接与服务端中发布的第一应用服务进行通信会话,第一长连接为网络代理端与服务端建立的针对第一应用服务的长连接;
终端通信会话迁移模块,用于在服务端对第一应用服务进行更新发布时,通过网络代理端将基于第一长连接的通信会话迁移至服务端中更新发布的第二应用服务,以由第二应用服务基于第二长连接处理通信会话,第二长连接为网络代理端断开第一长连接后与服务端建立针对第二应用服务的长连接。
一种会话处理的装置,应用于服务端,该装置包括:
服务端第一长连接建立模块,用于与网络代理端建立针对服务端中发布的第一应用服务的第一长连接,以使用户终端通过第一长连接与第一应用服务进行通信会话;
服务端第二长连接建立模块,用于在对第一应用服务进行更新发布时,断开第一长连接,并与网络代理端建立针对服务端中更新发布的第二应用服务的第二长连接;
服务端通信会话处理模块,用于通过第二应用服务,基于第二长连接处理用户终端中基于第一长连接的通信会话,通信会话为用户终端通过网络代理端迁移的。
本发明实施例具有以下优点:
在本发明实施例中,通过网络代理端与服务端建立针对服务端中发布的第一应用服务的第一长连接,以使用户终端通过第一长连接与第一应用服务进行通信会话,网络代理端在服务端对第一应用服务进行更新发布时,断开第一长连接,并与服务端建立针对服务端中更新发布的第二应用服务的第二长连接,网络代理端将用户终端中基于第一长连接的通信会话迁移至第二应用服务,以由第二应用服务基于第二长连接处理通信会话,实现了在应用服务更新发布时通过网络代理端迁移基于长连接的会话,避免了应用服务更新发布时导致长连接断开而进行重连接,保证了服务端的稳定性,且由于在会话迁移过程中保持网络代理端与用户终端的连接不断开,整个会话迁移过程对用户终端是无感的,避免了会话数据的损失,保证了通信质量。
附图说明
为了更清楚地说明本发明的技术方案,下面将对本发明的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1a是本发明一实施例提供的一种迁移方案的架构图;
图1b是本发明一实施例提供的另一种迁移方案的架构图;
图1c是本发明一实施例提供的另一种迁移方案的架构图;
图2是本发明一实施例提供的一种会话处理的步骤流程图;
图3是本发明一实施例提供的另一种会话处理的方法的步骤流程图;
图4是本发明一实施例提供的另一种会话处理的方法的步骤流程图;
图5是本发明一实施例提供的一种会话处理的装置的结构框图;
图6是本发明一实施例提供的另一种会话处理的装置的结构框图;
图7是本发明一实施例提供的另一种会话处理的装置的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
对于基于TCP长连接的通信,用户终端存在监听会话(LISTEN Session)和TCP会话(TCP Session)两个进程,监听会话可以用于通过监听TCP端口来接收TCP连接请求,TCP会话可以用于传输通信数据,其是在通过监听会话接收TCP连接请求后建立的。
在对基于TCP长连接的通信会话进行迁移时,即将基于TCP长连接的通信会话从同一台设备的一个进程迁移到另一个进程,或,从一个设备迁移另一个设备,可以参考如图1a和如图1b的迁移方案,具体如下:
方案一:如图1a,其存在两个进程,即旧进程(Old Process)和新进程(NewProcess)。
对于监听会话,其存在两种处理方式:1、对于用户终端的旧进程上的监听会话,当需要迁移时,可以通过Fork函数在用户终端侧创建一个新进程,然后在新进程中通过Exec函数执行更新发布的服务的二进制文件,进而使得新进程可以接手旧进程中监听会话,旧进程可以关闭监听会话。2、对于用户终端的旧进程上的监听会话,当需要迁移时,可以采用UDS(Unix Domain Sockets,Unix域套接字)功能,其可以在同一用户终端上的两个进程之间进行数据传输。具体的,可以通过Recvmsg接口接收监听会话的相关信息,并通过调用Sendmsg接口将监听会话的相关信息发送给新进程,旧进程进而可以关闭监听会话,新进程可以接手监听会话。
对于TCP会话,当需要迁移时,旧进程可以继续保持,用于处理基于在先长连接的会话,然后等待用户终端自身断开TCP长连接并进行重连,进而将用户终端上的新连接逐步迁移到新进程,等旧进程上没有TCP长连接后自动退出。
然而,采用如图1a的迁移方案存在以下问题:
1、对于监听会话而言,采用这种方案依赖于Recvmsg接口和Sendmsg接口,需要较高的内核版本支持,兼容性较差。
2、对于TCP会话而言,这种方案只能依赖用户终端断开TCP长连接并进行重连,断开时间不可控,而在进行版本更新时通常会设置一个旧版本强制下线的时间,在旧版本程序下线前用户终端还未进行自动断开,将会强制将其下线,这样将会导致数据损失,无法达到真正的无损迁移。
方案二:如图1b,其存在两个网络代理程序,即旧网络代理程序(Old mson)和新网络代理程序(New mson),mson是一种开源的网络代理程序。
对于监听会话,当需要迁移时,可以采用UDS功能,其可以在同一用户终端上的两个进程之间进行数据传输。具体的,可以通过Recvmsg接口接收监听会话的相关信息,并通过调用Sendmsg接口将监听会话的相关信息发送给新网络代理程序,旧网络代理程序进而可以关闭监听会话,新网络代理程序可以接手监听会话。
对于TCP会话,当需要迁移时,也可以采用UDS功能,通过Recvmsg接口和Sendmsg接口,将旧网络代理程序上的TCP会话的相关信息传输至新网络代理程序,进而由新网络代理程序处理TCP会话。
然而,采用如图1b的迁移方案存在以下问题:
1、对于监听会话而言,采用这种方案依赖于Recvmsg接口和Sendmsg接口,需要较高的内核版本支持,兼容性较差。
2、对于TCP会话,采用这种方案虽然可以保证数据无损,但涉及到TLS(TransportLayer Security,安全传输层协议)数据的迁移,实现较为复杂,且也依赖于Recvmsg接口和Sendmsg接口,需要较高的内核版本支持,兼容性较差。
基于此,本发明提出在服务端的应用服务更新发布时,通过网络代理端将基于长连接的会话信息迁移到更新发布的应用服务上,做到真正的平滑迁移,同时在迁移的过程中,保证对用户终端而言是无感知,避免损失会话数据,如图1c,用户终端通过网络代理端与服务端中应用服务进行通信,网络代理端将与服务端的TCP长连接从应用服务1迁移到应用服务2,实现了真正的TCP长连接平滑迁移,且由于在会话迁移过程中保持网络代理端与用户终端的连接不断开,整个会话迁移过程对用户终端是无感的。
以下进对本发明进行具体说明:
参照图2,示出了本发明一实施例提供的一种会话处理的方法的步骤流程图,该方法可以应用于网络代理端,具体可以包括如下步骤:
步骤201,网络代理端与服务端建立针对服务端中发布的第一应用服务的第一长连接,以使用户终端通过第一长连接与第一应用服务进行通信会话。
其中,长连接可以为基于TCP的长连接。
在服务端中第一应用服务未更新发布的情况下,网络代理端可以与服务端建立针对服务端中发布的第一应用服务的第一长连接,通过网络代理端与服务端的第一长连接,用户终端可以与服务端中第一应用服务进行通信会话。
步骤202,网络代理端在服务端对第一应用服务进行更新发布时,断开第一长连接,并与服务端建立针对服务端中更新发布的第二应用服务的第二长连接。
在服务端对第一应用服务进行更新发布时,如将第一应用服务为一个新的版本,则网络服务端在保持与用户终端的连接的情况下,可以断开第一长连接,然后与服务端建立针对服务端中更新发布的第二应用服务的第二长连接。
步骤203,网络代理端将用户终端中基于第一长连接的通信会话迁移至第二应用服务,以由第二应用服务基于第二长连接处理通信会话。
对于用户终端中原有的基于第一长连接的通信会话,网络代理端可以将其迁移至第二应用服务,第二应用服务进而可以基于第二长连接处理原有的基于第一长连接的通信会话,实现了TCP长连接的平滑迁移。
在本发明一实施例中,步骤203,可以包括:
网络代理端从用户终端获取基于第一长连接的会话信息;网络代理端将会话信息发送至第二应用服务,以由第二应用服务基于第二长连接恢复会话信息对应的通信会话。
在服务端对第一应用服务更新发布时,用户终端可以停止针对长连接重建立的监听,即关闭监听会话,进而可以避免用户终端主动将长连接断开而进行重连接,用户终端进而可以获取自身已有的基于第一长连接的会话信息,将会话信息发送至网络代理端。
在接收到会话信息后,网络代理端可以断开第一长连接,进而可以根据负载均衡策略,建立与第二应用服务的第二长连接,然后可以将会话信息发送至服务端。
在接收到会话信息后,服务端可以将其发送至第二应用服务,第二应用服务进而可以采用会话信息,在第二长连接上恢复基于第一长连接的通信会话。
在一示例中,用户终端可以对会话信息进行序列化处理,然后将序列化处理后的会话信息发送至网络代理端,序列化处理为将java对象转换成二进制流,进而可以在不同进程之间进行二进制数据传输,第二应用服务在接收到序列化处理后的会话信息后,可以进行反序列化处理,即把二进制数据转换成java对象,得到会话信息。
在本发明实施例中,通过网络代理端与服务端建立针对服务端中发布的第一应用服务的第一长连接,以使用户终端通过第一长连接与第一应用服务进行通信会话,网络代理端在服务端对第一应用服务进行更新发布时,断开第一长连接,并与服务端建立针对服务端中更新发布的第二应用服务的第二长连接,网络代理端将用户终端中基于第一长连接的通信会话迁移至第二应用服务,以由第二应用服务基于第二长连接处理通信会话,实现了在应用服务更新发布时通过网络代理端迁移基于长连接的会话,避免了应用服务更新发布时导致长连接断开而进行重连接,保证了服务端的稳定性,且由于在会话迁移过程中保持网络代理端与用户终端的连接不断开,整个会话迁移过程对用户终端是无感的,避免了会话数据的损失,保证了通信质量。
在本发明一实施例中,该方法还可以包括:
网络代理端在对网络代理服务进行更新发布的情况下,根据基于未更新发布的网络代理服务的连接数,确定目标下线速率;网络代理端按照目标下线速率,对基于未更新发布的网络代理服务的连接进行下线。
在网络代理端对网络代理服务进行更新发布的情况下,如将网络代理服务更新发布新版本,需要对基于网络代理服务的连接进行下线,该连接可以为TCP长连接。
为了避免短时间大量的终端设备进行重连接,则可以获取基于未更新发布的网络代理服务的连接数,即基于未更新发布前的网络代理服务的TCP长连接的数量,然后可以根据连接数,确定目标下线速率,进而可以按照目标下线速率,对基于未更新发布的网络代理服务的连接进行下线,实现了在网络代理服务更新发布时进行缓慢下线,避免了短时间内大量的重连接,保证了网络代理端的稳定性。
在一示例中,对于在网络代理服务进行更新发布时监听会话和TCP会话的迁移,可以参考上文中如图1a或如图1b的迁移方案。
在本发明一实施例中,在根据基于未更新发布的网络代理服务的连接数,确定目标下线速率之前,还可以包括:
网络代理端确定目标连接在更新发布预设时长后的剩余百分比;网络代理端在剩余百分比小于或等于预设剩余百分比时,执行根据未更新发布的当前网络代理服务的连接数,确定目标下线速率。
其中,目标连接可以为基于未更新发布的网络代理服务的连接。
在对网络代理服务进行更新发布后,由于用户终端会断开并重连接至新的网络代理服务,基于未更新发布的网络代理服务的TCP长连接数量会逐渐减少,则在更新发布预设时长后,如预设时长可以为48小时,可以获取更新发布预设时长后剩余的连接数,将其与更新发布时的连接数进行比较,得到剩余百分比。
在剩余百分比大于预设剩余百分比时,在此时进行下线策略,可能会导致短时间大量的重连接,超出限制的流量,如预设剩余百分比为15%,若存在1亿的连接,则有1500万终端会快速重连,影响网络代理服务的稳定性,即使配置有较高可用的限流策略,也会引起终端登录的限流,进而导致一定时间内无法通信,如限制50w/s的登录速度,1500w终端需要30秒才能全部完成登录,将会导致部分终端30秒的不可用,则为了保证稳定性,在剩余百分比大于预设剩余百分比时,不进行下线。
在剩余百分比小于或等于预设剩余百分比时,即剩余的连接数量较少,可以进行下线策略,则可以根据基于当前网络代理服务的连接数,确定目标下线速率,并按照目标下线速率对基于未更新发布的网络代理服务的连接进行缓慢下线。
在本发明实施例中,通过在对网络代理服务进行更新发布的情况下,网络代理端确定目标连接在更新发布预设时长后的剩余百分比,在剩余百分比小于或等于预设剩余百分比时,根据未更新发布的当前网络代理服务的连接数,确定目标下线速率,然后按照目标下线速率,对基于未更新发布的网络代理服务的连接进行下线,实现了在网络代理服务进行更新发布时对已有的连接进行缓慢下线,避免了在短时间内大量的重连接,保证了网络代理服务的稳定性。
参照图3,示出了本发明一实施例提供的另一种会话处理的方法的步骤流程图,该方法可以应用于用户终端,具体可以包括如下步骤:
步骤301,用户终端通过第一长连接与服务端中发布的第一应用服务进行通信会话,第一长连接为网络代理端与服务端建立的针对第一应用服务的长连接。
在服务端中第一应用服务未更新发布的情况下,网络代理端可以与服务端建立针对服务端中发布的第一应用服务的第一长连接,通过网络代理端与服务端的第一长连接,用户终端可以与服务端中第一应用服务进行通信会话。
步骤302,用户终端在服务端对第一应用服务进行更新发布时,通过网络代理端将基于第一长连接的通信会话迁移至服务端中更新发布的第二应用服务,以由第二应用服务基于第二长连接处理通信会话,第二长连接为网络代理端断开第一长连接后与服务端建立针对第二应用服务的长连接。
对于用户终端中原有的基于第一长连接的通信会话,网络代理端可以将其迁移至第二应用服务,第二应用服务进而可以基于第二长连接处理原有的基于第一长连接的通信会话,实现了TCP长连接的平滑迁移。
在本发明一实施例中,步骤302,可以包括:
用户终端将基于第一长连接的会话信息发送至网络代理端,以通过网络代理端将会话信息发送至第二应用服务,并由第二应用服务基于第二长连接恢复会话信息对应的通信会话。
在本发明一实施例中,该方法还可以包括:
用户终端在服务端对第一应用服务进行更新发布时,停止针对长连接重建立的监听。
在服务端对第一应用服务更新发布时,用户终端可以停止针对长连接重建立的监听,即关闭监听会话,进而可以避免用户终端主动将长连接断开而进行重连接,用户终端进而可以获取自身已有的基于第一长连接的会话信息,将会话信息发送至网络代理端。
在接收到会话信息后,网络代理端可以断开第一长连接,进而可以根据负载均衡策略,建立与第二应用服务的第二长连接,然后可以将会话信息发送至服务端。
在接收到会话信息后,服务端可以将其发送至第二应用服务,第二应用服务进而可以采用会话信息,在第二长连接上恢复基于第一长连接的通信会话。
在本发明一实施例中,在将基于第一长连接的会话信息发送至网络代理端之前,该方法还可以包括:
用户终端对会话信息进行序列化处理。
在具体实现中,用户终端可以对会话信息进行序列化处理,然后将序列化处理后的会话信息发送至网络代理端,序列化处理为将java对象转换成二进制流,进而可以在不同进程之间进行二进制数据传输,第二应用服务在接收到序列化处理后的会话信息后,可以进行反序列化处理,即把二进制数据转换成java对象,得到会话信息。
参照图4,示出了本发明一实施例提供的另一种会话处理的方法的步骤流程图,该方法可以应用于服务端,具体可以包括如下步骤:
步骤401,服务端与网络代理端建立针对服务端中发布的第一应用服务的第一长连接,以使用户终端通过第一长连接与第一应用服务进行通信会话。
在服务端中第一应用服务未更新发布的情况下,网络代理端可以与服务端建立针对服务端中发布的第一应用服务的第一长连接,通过网络代理端与服务端的第一长连接,用户终端可以与服务端中第一应用服务进行通信会话。
步骤402,服务端在对第一应用服务进行更新发布时,断开第一长连接,并与网络代理端建立针对服务端中更新发布的第二应用服务的第二长连接。
在服务端对第一应用服务进行更新发布时,如将第一应用服务为一个新的版本,则网络服务端在保持与用户终端的连接的情况下,可以断开第一长连接,然后与服务端建立针对服务端中更新发布的第二应用服务的第二长连接。
步骤403,服务端通过第二应用服务,基于第二长连接处理用户终端中基于第一长连接的通信会话,通信会话为用户终端通过网络代理端迁移的。
对于用户终端中原有的基于第一长连接的通信会话,网络代理端可以将其迁移至第二应用服务,第二应用服务进而可以基于第二长连接处理原有的基于第一长连接的通信会话,实现了TCP长连接的平滑迁移。
在本发明一实施例中,步骤403,可以包括:
服务端通过第二应用服务,接收网络代理端发送的会话信息,会话信息为网络代理端从用户终端获取基于第一长连接的会话信息;服务端通过第二应用服务,基于第二长连接恢复会话信息对应的通信会话。
在服务端对第一应用服务更新发布时,用户终端可以停止针对长连接重建立的监听,即关闭监听会话,进而可以避免用户终端主动将长连接断开而进行重连接,用户终端进而可以获取自身已有的基于第一长连接的会话信息,将会话信息发送至网络代理端。
在接收到会话信息后,网络代理端可以断开第一长连接,进而可以根据负载均衡策略,建立与第二应用服务的第二长连接,然后可以将会话信息发送至服务端。
在接收到会话信息后,服务端可以将其发送至第二应用服务,第二应用服务进而可以采用会话信息,在第二长连接上恢复基于第一长连接的通信会话。
在本发明一实施例中,会话信息为由用户终端进行序列化处理后的会话信息,在服务端通过第二应用服务,基于第二长连接恢复会话信息对应的通信会话之前,该方法还可以包括:
服务端通过第二应用服务,对序列化处理后的会话信息进行反序列化处理。
在具体实现中,用户终端可以对会话信息进行序列化处理,然后将序列化处理后的会话信息发送至网络代理端,序列化处理为将java对象转换成二进制流,进而可以在不同进程之间进行二进制数据传输,第二应用服务在接收到序列化处理后的会话信息后,可以进行反序列化处理,即把二进制数据转换成java对象,得到会话信息。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图5,示出了本发明一实施例提供的一种会话处理的装置的结构示意图,该装置可以应用于网络代理端,具体可以包括如下模块:
代理端第一长连接建立模块501,可以用于与服务端建立针对服务端中发布的第一应用服务的第一长连接,以使用户终端通过第一长连接与第一应用服务进行通信会话;
代理端第二长连建立模块502,可以用于在服务端对第一应用服务进行更新发布时,断开第一长连接,并与服务端建立针对服务端中更新发布的第二应用服务的第二长连接;
代理端通信会话迁移模块503,可以用于将用户终端中基于第一长连接的通信会话迁移至第二应用服务,以由第二应用服务基于第二长连接处理通信会话。
在本发明一实施例中,代理端通信会话迁移模块503,可以包括:
从终端获取会话信息子模块,可以用于从用户终端获取基于第一长连接的会话信息;
会话信息发送至第二应用子模块,可以用于将会话信息发送至第二应用服务,以由第二应用服务基于第二长连接恢复会话信息对应的通信会话。
在本发明一实施例中,该装置还可以包括:
目标下线速率确定模块,可以用于在对网络代理服务进行更新发布的情况下,根据基于未更新发布的网络代理服务的连接数,确定目标下线速率;
按速率下线模块,可以用于按照目标下线速率,对基于未更新发布的网络代理服务的连接进行下线。
在本发明一实施例中,该装置还可以包括:
剩余百分比确定模块,可以用于确定基于目标连接在更新发布预设时长后的剩余百分比;在剩余百分比小于或等于预设剩余百分比时,调用目标下线速率确定模块;其中,目标连接为基于未更新发布的网络代理服务的连接。
参照图6,示出了本发明一实施例提供的一种会话处理的装置的结构示意图,该装置可以应用于用户终端,具体可以包括如下模块:
终端第一长连接通信会话模块601,可以用于通过第一长连接与服务端中发布的第一应用服务进行通信会话,第一长连接为网络代理端与服务端建立的针对第一应用服务的长连接;
终端通信会话迁移模块602,可以用于在服务端对第一应用服务进行更新发布时,通过网络代理端将基于第一长连接的通信会话迁移至服务端中更新发布的第二应用服务,以由第二应用服务基于第二长连接处理通信会话,第二长连接为网络代理端断开第一长连接后与服务端建立针对第二应用服务的长连接。
在本发明一实施例中,终端通信会话迁移模块602,可以包括:
会话信息发送至网络代理端子模块,可以用于将基于第一长连接的会话信息发送至网络代理端,以通过网络代理端将会话信息发送至第二应用服务,并由第二应用服务基于第二长连接恢复会话信息对应的通信会话。
在本发明一实施例中,该装置还可以包括:
序列化处理模块,可以用于对会话信息进行序列化处理。
在本发明一实施例中,该装置还可以包括:
监听停止模块,可以用于在服务端对第一应用服务进行更新发布时,停止针对长连接重建立的监听。
参照图7,示出了本发明一实施例提供的一种会话处理的装置的结构示意图,该装置可以应用于服务端,具体可以包括如下模块:
服务端第一长连接建立模块701,可以用于与网络代理端建立针对服务端中发布的第一应用服务的第一长连接,以使用户终端通过第一长连接与第一应用服务进行通信会话;
服务端第二长连接建立模块702,可以用于在对第一应用服务进行更新发布时,断开第一长连接,并与网络代理端建立针对服务端中更新发布的第二应用服务的第二长连接;
服务端通信会话处理模块703,可以用于通过第二应用服务,基于第二长连接处理用户终端中基于第一长连接的通信会话,通信会话为用户终端通过网络代理端迁移的。
在本发明一实施例中,服务端通信会话处理模块703,可以包括:
从网络代理接收会话信息子模块,可以用于通过第二应用服务,接收网络代理端发送的会话信息,会话信息为网络代理端从用户终端获取基于第一长连接的会话信息;
基于会话信息恢复子模块,可以用于通过第二应用服务,基于第二长连接恢复会话信息对应的通信会话。
在本发明一实施例中,会话信息可以为由用户终端进行序列化处理后的会话信息,该装置还可以包括:
反序列化处理模块,可以用于通过第二应用服务,对序列化处理后的会话信息进行反序列化处理。
本发明一实施例还提供了一种电子设备,可以包括处理器、存储器及存储在存储器上并能够在处理器上运行的计算机程序,计算机程序被处理器执行时实现如上会话处理的方法。
本发明一实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现如上会话处理的方法。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、用户终端(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理用户终端的处理器以产生一个机器,使得通过计算机或其他可编程数据处理用户终端的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理用户终端以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理用户终端上,使得在计算机或其他可编程用户终端上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程用户终端上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者用户终端不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者用户终端所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者用户终端中还存在另外的相同要素。
以上对所提供的一种会话处理的方法和装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (14)
1.一种会话处理的方法,其特征在于,应用于网络代理端,所述方法包括:
所述网络代理端与服务端建立针对所述服务端中发布的第一应用服务的第一长连接,以使用户终端通过所述第一长连接与所述第一应用服务进行通信会话;
所述网络代理端在所述服务端对所述第一应用服务进行更新发布时,断开所述第一长连接,并与所述服务端建立针对所述服务端中更新发布的第二应用服务的第二长连接;
所述网络代理端将所述用户终端中基于所述第一长连接的通信会话迁移至所述第二应用服务,以由所述第二应用服务基于所述第二长连接处理所述通信会话。
2.根据权利要求1所述的方法,其特征在于,所述网络代理端将所述用户终端中基于所述第一长连接的通信会话迁移至所述第二应用服务,以由所述第二应用服务基于所述第二长连接处理所述通信会话,包括:
所述网络代理端从所述用户终端获取基于所述第一长连接的会话信息;
所述网络代理端将所述会话信息发送至所述第二应用服务,以由所述第二应用服务基于所述第二长连接恢复所述会话信息对应的通信会话。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
所述网络代理端在对网络代理服务进行更新发布的情况下,根据基于未更新发布的网络代理服务的连接数,确定目标下线速率;
所述网络代理端按照所述目标下线速率,对基于未更新发布的网络代理服务的连接进行下线。
4.根据权利要求3所述的方法,其特征在于,在所述根据基于未更新发布的网络代理服务的连接数,确定目标下线速率之前,还包括:
所述网络代理端确定目标连接在更新发布预设时长后的剩余百分比;其中,所述目标连接为基于未更新发布的网络代理服务的连接;
所述网络代理端在所述剩余百分比小于或等于预设剩余百分比时,执行所述根据基于未更新发布的网络代理服务的连接数,确定目标下线速率。
5.一种会话处理的方法,其特征在于,应用于用户终端,所述方法包括:
所述用户终端通过第一长连接与服务端中发布的第一应用服务进行通信会话,所述第一长连接为网络代理端与所述服务端建立的针对所述第一应用服务的长连接;
所述用户终端在所述服务端对所述第一应用服务进行更新发布时,通过所述网络代理端将基于所述第一长连接的通信会话迁移至所述服务端中更新发布的第二应用服务,以由所述第二应用服务基于第二长连接处理所述通信会话,所述第二长连接为所述网络代理端断开所述第一长连接后与所述服务端建立针对所述第二应用服务的长连接。
6.根据权利要求5所述的方法,其特征在于,所述通过所述网络代理端将基于所述第一长连接的通信会话迁移至所述服务端中更新发布的第二应用服务,以由所述第二应用服务基于第二长连接处理所述通信会话,包括:
所述用户终端将基于所述第一长连接的会话信息发送至所述网络代理端,以通过所述网络代理端将所述会话信息发送至所述第二应用服务,并由所述第二应用服务基于所述第二长连接恢复所述会话信息对应的通信会话。
7.根据权利要求6所述的方法,其特征在于,在所述将基于所述第一长连接的会话信息发送至所述网络代理端之前,所述方法还包括:
所述用户终端对所述会话信息进行序列化处理。
8.根据权利要求5-7任一项所述的方法,其特征在于,所述方法还包括:
所述用户终端在所述服务端对所述第一应用服务进行更新发布时,停止针对长连接重建立的监听。
9.一种会话处理的方法,其特征在于,应用于服务端,所述方法包括:
所述服务端与网络代理端建立针对所述服务端中发布的第一应用服务的第一长连接,以使用户终端通过所述第一长连接与所述第一应用服务进行通信会话;
所述服务端在对所述第一应用服务进行更新发布时,断开所述第一长连接,并与所述网络代理端建立针对所述服务端中更新发布的第二应用服务的第二长连接;
所述服务端通过所述第二应用服务,基于所述第二长连接处理所述用户终端中基于所述第一长连接的通信会话,所述通信会话为所述用户终端通过所述网络代理端迁移的。
10.根据权利要求9所述的方法,其特征在于,所述服务端通过所述第二应用服务,基于所述第二长连接处理所述用户终端中基于所述第一长连接的通信会话,包括:
所述服务端通过所述第二应用服务,接收所述网络代理端发送的会话信息,所述会话信息为所述网络代理端从所述用户终端获取基于所述第一长连接的会话信息;
所述服务端通过所述第二应用服务,基于所述第二长连接恢复所述会话信息对应的通信会话。
11.根据权利要求10所述的方法,其特征在于,所述会话信息为由所述用户终端进行序列化处理后的会话信息,在所述服务端通过所述第二应用服务,基于所述第二长连接恢复所述会话信息对应的通信会话之前,所述方法还包括:
所述服务端通过所述第二应用服务,对序列化处理后的会话信息进行反序列化处理。
12.一种会话处理的装置,其特征在于,应用于网络代理端,所述装置包括:
代理端第一长连接建立模块,用于与服务端建立针对所述服务端中发布的第一应用服务的第一长连接,以使用户终端通过所述第一长连接与所述第一应用服务进行通信会话;
代理端第二长连建立模块,用于在所述服务端对所述第一应用服务进行更新发布时,断开所述第一长连接,并与所述服务端建立针对所述服务端中更新发布的第二应用服务的第二长连接;
代理端通信会话迁移模块,用于将所述用户终端中基于所述第一长连接的通信会话迁移至所述第二应用服务,以由所述第二应用服务基于所述第二长连接处理所述通信会话。
13.一种会话处理的装置,其特征在于,应用于用户终端,所述装置包括:
终端第一长连接通信会话模块,用于通过第一长连接与服务端中发布的第一应用服务进行通信会话,所述第一长连接为网络代理端与所述服务端建立的针对所述第一应用服务的长连接;
终端通信会话迁移模块,用于在所述服务端对所述第一应用服务进行更新发布时,通过所述网络代理端将基于所述第一长连接的通信会话迁移至所述服务端中更新发布的第二应用服务,以由所述第二应用服务基于第二长连接处理所述通信会话,所述第二长连接为所述网络代理端断开所述第一长连接后与所述服务端建立针对所述第二应用服务的长连接。
14.一种会话处理的装置,其特征在于,应用于服务端,所述装置包括:
服务端第一长连接建立模块,用于与网络代理端建立针对所述服务端中发布的第一应用服务的第一长连接,以使用户终端通过所述第一长连接与所述第一应用服务进行通信会话;
服务端第二长连接建立模块,用于在对所述第一应用服务进行更新发布时,断开所述第一长连接,并与所述网络代理端建立针对所述服务端中更新发布的第二应用服务的第二长连接;
服务端通信会话处理模块,用于通过所述第二应用服务,基于所述第二长连接处理所述用户终端中基于所述第一长连接的通信会话,所述通信会话为所述用户终端通过所述网络代理端迁移的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210689336.8A CN115022386B (zh) | 2022-06-17 | 2022-06-17 | 一种会话处理的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210689336.8A CN115022386B (zh) | 2022-06-17 | 2022-06-17 | 一种会话处理的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115022386A CN115022386A (zh) | 2022-09-06 |
CN115022386B true CN115022386B (zh) | 2024-03-12 |
Family
ID=83074057
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210689336.8A Active CN115022386B (zh) | 2022-06-17 | 2022-06-17 | 一种会话处理的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115022386B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101364874A (zh) * | 2008-09-27 | 2009-02-11 | 深圳华为通信技术有限公司 | 一种媒体转移方法、终端及应用服务器 |
CN102026314A (zh) * | 2009-09-17 | 2011-04-20 | 特拉博斯股份有限公司 | 用于在数据源之间转移通信会话的方法和系统 |
CN109086123A (zh) * | 2018-08-10 | 2018-12-25 | 北京智能管家科技有限公司 | 应用会话的迁移方法、装置、终端、服务器及存储介质 |
CN109743381A (zh) * | 2018-12-27 | 2019-05-10 | 北京字节跳动网络技术有限公司 | 客户端与服务端长连接交互方法及装置 |
CN110442610A (zh) * | 2019-08-05 | 2019-11-12 | 中国工商银行股份有限公司 | 负载均衡的方法、装置、计算设备以及介质 |
CN111726384A (zh) * | 2019-03-22 | 2020-09-29 | 阿里巴巴集团控股有限公司 | 通信方法及装置 |
CN113377411A (zh) * | 2021-06-10 | 2021-09-10 | 齐维潇 | 一种基于云集群的应用更新的方法及装置 |
CN114281373A (zh) * | 2021-09-10 | 2022-04-05 | 腾讯科技(深圳)有限公司 | 设备状态更新方法、装置、计算机设备和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7146418B2 (en) * | 2001-11-16 | 2006-12-05 | Microsoft Corporation | Method and system for providing transparent mobility support |
-
2022
- 2022-06-17 CN CN202210689336.8A patent/CN115022386B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101364874A (zh) * | 2008-09-27 | 2009-02-11 | 深圳华为通信技术有限公司 | 一种媒体转移方法、终端及应用服务器 |
CN102026314A (zh) * | 2009-09-17 | 2011-04-20 | 特拉博斯股份有限公司 | 用于在数据源之间转移通信会话的方法和系统 |
CN109086123A (zh) * | 2018-08-10 | 2018-12-25 | 北京智能管家科技有限公司 | 应用会话的迁移方法、装置、终端、服务器及存储介质 |
CN109743381A (zh) * | 2018-12-27 | 2019-05-10 | 北京字节跳动网络技术有限公司 | 客户端与服务端长连接交互方法及装置 |
CN111726384A (zh) * | 2019-03-22 | 2020-09-29 | 阿里巴巴集团控股有限公司 | 通信方法及装置 |
CN110442610A (zh) * | 2019-08-05 | 2019-11-12 | 中国工商银行股份有限公司 | 负载均衡的方法、装置、计算设备以及介质 |
CN113377411A (zh) * | 2021-06-10 | 2021-09-10 | 齐维潇 | 一种基于云集群的应用更新的方法及装置 |
CN114281373A (zh) * | 2021-09-10 | 2022-04-05 | 腾讯科技(深圳)有限公司 | 设备状态更新方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115022386A (zh) | 2022-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5097671B2 (ja) | シームレスなホスト移行のためのシステムおよび方法 | |
US9049070B2 (en) | Dynamic client/server session recovery in a heterogenous computer network | |
CN104811459A (zh) | 用于消息服务的处理方法、装置及系统、消息服务系统 | |
CN106685748B (zh) | 一种心跳信息发送方法、服务器及终端 | |
US20080071914A1 (en) | Session control system | |
CN116048538B (zh) | 用于dpu的服务网格部署方法及装置 | |
CN111131188A (zh) | 通信连接方法及服务器、客户端、存储介质 | |
EP2944073A2 (en) | Method and system for the handling of redundant long poll | |
CN115022386B (zh) | 一种会话处理的方法和装置 | |
CN101986659A (zh) | 数据实时传输的方法及系统 | |
CN114500243B (zh) | 数据通信方法、装置、计算机可读介质及电子设备 | |
CN112291180A (zh) | 一种消息负载均衡的方法 | |
CN115633081A (zh) | 一种基于Eureka心跳连接的优化方法 | |
CN109379443B (zh) | 一种面向物联网的分布式消息队列的实现方法 | |
CN109347894A (zh) | 管理FastCGI进程的方法、管理器、设备及介质 | |
CN112311759B (zh) | 一种混合网络下的设备连接切换方法和系统 | |
CN115378989A (zh) | 基于唤醒通道的mqtt主题订阅系统、方法、终端及介质 | |
CN114363204A (zh) | 请求监控方法、网络设备及存储介质 | |
WO2002009454A2 (en) | System and method for coalescing multiple periodic update timers | |
CN113992737A (zh) | 一种物联网连接方法、网关服务器以及网关 | |
WO2023175951A1 (ja) | 通信システム、通信装置、通信方法、及び可読媒体 | |
CN110890989A (zh) | 一种通道连接方法及装置 | |
CN115150363B (zh) | Ip地址更新方法、网关设备、网关下挂设备和存储介质 | |
CN114666217B (zh) | 基于easymesh的一键升级方法及系统 | |
CN113839809B (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 |