CN115599412A - 一种长连接转移方法及相关装置 - Google Patents
一种长连接转移方法及相关装置 Download PDFInfo
- Publication number
- CN115599412A CN115599412A CN202110722725.1A CN202110722725A CN115599412A CN 115599412 A CN115599412 A CN 115599412A CN 202110722725 A CN202110722725 A CN 202110722725A CN 115599412 A CN115599412 A CN 115599412A
- Authority
- CN
- China
- Prior art keywords
- instance
- test
- server
- long connection
- user terminal
- 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.)
- Pending
Links
- 238000012546 transfer Methods 0.000 title claims abstract description 106
- 238000000034 method Methods 0.000 title claims abstract description 71
- 238000012360 testing method Methods 0.000 claims abstract description 197
- 230000015654 memory Effects 0.000 claims description 47
- 230000006854 communication Effects 0.000 claims description 31
- 238000004891 communication Methods 0.000 claims description 29
- 230000004044 response Effects 0.000 claims description 5
- 238000012217 deletion Methods 0.000 claims description 3
- 230000037430 deletion Effects 0.000 claims description 3
- 238000004590 computer program Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 238000005096 rolling process Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000010922 spray-dried dispersion Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请提供了一种长连接转移方法及相关装置,方法包括:服务器部署第一实例;服务器对第一实例进行灰度测试;在第一实例通过灰度测试的情况下,服务器将至少一个用户终端的长连接信息由第二实例转移至第一实例,通过第一实例与至少一个用户终端进行通信;其中,第一实例与第二实例为不同版本的实例。实施本申请,能够提升用户使用体验。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种长连接转移方法及相关装置。
背景技术
用户终端通过传输层安全性协议TLS与服务器上部署的实例进行通信。
在对服务器上已部署的多个实例进行升级时,一般采用滚动升级的方式。在滚动升级中,由于代理服务器对于TLS支持有限,会造成用户终端与服务器之间的长连接中断,从而影响用户使用体验。
发明内容
本申请公开了一种长连接转移方法及相关装置,所述方法在实例升级过程中,不会造成服务器与用户终端之间的长连接中断,提升用户使用体验。
第一方面,本申请提供了一种长连接转移方法,从服务器方面描述,包括:服务器部署第一实例;所述服务器对所述第一实例进行灰度测试;在所述第一实例通过灰度测试的情况下,所述服务器将至少一个用户终端的长连接信息由第二实例转移至所述第一实例,通过所述第一实例与所述至少一个用户终端进行通信;其中,所述第一实例与所述第二实例为不同版本的实例。
传统方法中,实例升级前,服务器使用第二实例与用户终端进行通信,在实例升级时,是将第一实例逐步替代第二实例,替代完成后,直接通过第一实例与用户终端建立长连接,进行通信。但是在实例升级时,逐步替代的方式会造成服务器与用户终端之间的长连接中断,造成用户使用体验不佳。
本申请中,在进行实例升级时,一方面,服务器使用第二实例与用户终端保持通信,另一方面,在服务器上部署第一实例,并对第一实例进行灰度测试,在第一实例通过灰度测试的情况下,将用户终端的长连接信息从第二实例转移至第一实例上,并通过第一实例与用户终端进行通信。相对于传统方法,本申请通过长连接转移的方式,将用户终端的长连接信息转移至第一实例上,然后使用第一实例与用户终端进行通信,长连接转移过程不会造成服务器与用户终端之间的长连接终端,该过程不影响用户使用、体验,因此不会造成用户体验不佳的情况;另外,本申请中的第一实例经过了灰度测试,只有在第一实例通过灰度测试的情况下,才正常使用,因此第一实例稳定性更高,保障了用户使用体验感受更佳。
基于第一方面,在可能的实现方式中,所述服务器对所述第一实例进行灰度测试包括:所述服务器接收多个测试终端的长连接请求,通过所述第一实例与所述多个测试终端建立长连接,实现对所述第一实例的灰度测试。
可以理解,服务器对第一实例进行灰度测试的方法可以是,服务器通过第一实例接收多个测试终端的长连接请求,通过第一实例与多个测试终端建立长连接,进行通信,根据通信情况,可以获得第一实例的灰度测试结果。通过对第一实例进行灰度测试,能够判断第一实例是否满足条件,在不满足条件的情况下,不会使用第一实例,只有在满足条件的情况下,才使用第一实例与用户终端进行通信。因此,通过对第一实例进行灰度测试,保障了第一实例的性能,例如稳定性、鲁棒性等,防止出现因第一实例性能不满足条件而需要版本回退,造成浪费时间、浪费人力物力财力以及用户体验差的情况。
基于第一方面,在可能的实现方式中,所述多个测试终端中的每个测试终端的长连接请求中携带了测试标识。
可以理解,每个测试终端的长连接请求中携带了测试标识,服务器根据测试标识判断该用户终端是否为测试终端,若是,则通过第一实例进行长连接,用于第一实例的灰度测试,若不是,则说明为普通用户(非测试用户),则通过第二实例进行长连接,从而保障实例升级过程不会出现服务器与用户终端断开连接的情况,保障用户的使用体验感受。
基于第一方面,在可能的实现方式中,在所述第一实例通过灰度测试的情况下,所述服务器将至少一个用户终端的长连接信息由第二实例转移至所述第一实例,通过所述第一实例与所述至少一个用户终端进行通信,包括:在所述第一实例通过灰度测试的情况下,通过所述第一实例接收预设数量的用户终端的长连接请求,测试所述第一实例能否承载所述预设数量的用户终端;若能,所述服务器将所述至少一个用户终端的长连接信息由所述第二实例转移至所述第一实例,通过所述第一实例与所述至少一个用户终端进行通信,删除所述第二实例。
可以看到,在第一实例通过灰度测试的情况下,还可以对第一实例进行承载量的测试,灰度测试以及承载量的测试进一步保障了第一实例的性能,对第一实例进行承载量的测试,防止在使用过程中因第一实例承载量不足出现长连接异常的情况,避免出现用户使用体验不佳的弊端。
基于第一方面,在可能的实现方式中,在所述服务器将所述至少一个用户终端的长连接信息由第二实例转移至所述第一实例之前,所述方法还包括:所述服务器接收代理服务器发送的长连接转移指令。
第二方面,本申请提供了一种长连接转移方法,从代理服务器方面描述,包括:代理服务器接收测试指令;所述测试指令用于指示服务器对第一实例进行灰度测试;所述代理服务器响应于所述测试指令,接收多个测试终端发送的连接请求并将所述多个测试终端的连接请求发送至所述服务器;所述多个测试终端中的每个测试终端的连接请求中携带了测试标识。
可以理解,代理服务器相当于“关卡”,只有在代理服务器接收到测试指令时,代理服务器才允许服务器接收用于灰度测试的多个测试终端的长连接请求,代理服务器的设置,保障了服务器正常工作。
基于第二方面,在可能的实现方式中,在所述第一实例通过灰度测试后,所述方法还包括:所述代理服务器接收长连接转移指令;所述长连接转移指令用于指示所述服务器将至少一个用户终端的长连接信息由第二实例转移至所述第一实例,通过所述第一实例与所述至少一个用户终端进行通信;其中,所述第一实例与所述第二实例为不同版本的实例;所述代理服务器将所述长连接转移指令发送至所述服务器。
可以理解,只有在代理服务器接收到长连接转移指令后,服务器才进行长连接转移工作,将用户终端的长连接信息转移至第一实例,使用第一实例与用户终端进行通信,若代理服务器未接收到长连接转移指令,服务器则仍然使用第二实例与用户终端进行通信。代理服务器负责管理、发现服务器,为服务器工作的顺利进行提供了安全保障。
第三方面,本申请提供了一种第一长连接转移装置,包括:部署单元,用于部署第一实例;测试单元,用于对所述第一实例进行灰度测试;长连接转移单元,用于在所述第一实例通过灰度测试的情况下,将至少一个用户终端的长连接信息由第二实例转移至所述第一实例;通信单元,用于通过所述第一实例与所述至少一个用户终端进行通信;其中,所述第一实例与所述第二实例为不同版本的实例。
基于第三方面,在可能的实现方式中,所述测试单元用于:所述服务器接收多个测试终端的长连接请求,通过所述第一实例与所述多个测试终端建立长连接,实现对所述第一实例的灰度测试。
基于第三方面,在可能的实现方式中,所述多个测试终端中的每个测试终端的长连接请求中携带了测试标识。
基于第三方面,在可能的实现方式中,所述装置还包括删除单元,其中,所述测试单元还用于,在所述第一实例通过灰度测试的情况下,通过所述第一实例接收预设数量的用户终端的长连接请求,测试所述第一实例能否承载所述预设数量的用户终端;所述长连接转移单元用于,在所述第一实例能够承载所述预设数量的用户终端的情况下,将所述至少一个用户终端的长连接信息由所述第二实例转移至所述第一实例;所述通信单元,用于通过所述第一实例与所述至少一个用户终端进行通信;所述删除单元,用于删除所述第二实例。
基于第三方面,在可能的实现方式中,所述通信单元还用于,接收代理服务器发送的长连接转移指令。
第三方面的各个功能单元用于实现上述第一方面或第一方面的任意实现方式所述的方法。
第四方面,本申请提供了一种第二长连接转移装置,包括:接收单元,用于接收测试指令;所述测试指令用于指示服务器对第一实例进行灰度测试;所述接收单元还用于,响应于所述测试指令,接收多个测试终端发送的连接请求;发送单元,用于将所述多个测试终端的连接请求发送至所述服务器;所述多个测试终端中的每个测试终端的连接请求中携带了测试标识。
基于第四方面,在可能的实现方式中,所述接收单元还用于,接收长连接转移指令;所述长连接转移指令用于指示所述服务器将至少一个用户终端的长连接信息由第二实例转移至所述第一实例,通过所述第一实例与所述至少一个用户终端进行通信;其中,所述第一实例与所述第二实例为不同版本的实例;所述发送单元还用于,将所述长连接转移指令发送至所述服务器。
第四方面的各个功能单元用于实现上述第二方面或第二方面的任意实现方式所述的方法。
第五方面,本申请提供了一种服务器,包括处理器和存储器,存储器用于存储指令,处理器用于调用存储器中存储的指令执行上述第一方面或第一方面的任一实现方式所述的方法。
第六方面,本申请提供了一种代理服务器,包括处理器和存储器,存储器用于存储指令,处理器用于调用存储器中存储的指令执行上述第二方面或第二方面的任一实现方式所述的方法。
第七方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序代码,当所述计算机程序代码被处理器执行时,所述处理器执行前述第一方面或第一方面的任意可能的实现中的方法。该计算机可读存储介质包括但不限于易失性存储器,例如随机访问存储器,非易失性存储器,例如快闪存储器、硬盘(hard disk drive,HDD)、固态硬盘(solid state drive,SSD)。
第八方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序代码,当所述计算机程序代码被处理器执行时,所述处理器执行前述第二方面或第二方面的任意可能的实现中的方法。该计算机可读存储介质包括但不限于易失性存储器,例如随机访问存储器,非易失性存储器,例如快闪存储器、硬盘(hard disk drive,HDD)、固态硬盘(solid state drive,SSD)。
第九方面,本申请还提供一种计算机程序产品,所述计算机程序产品包括计算机程序代码,在所述计算机程序代码被处理器执行时,所述处理器执行前述第一方面或第一方面的任意可能的实现中提供的方法。该计算机程序产品可以为一个软件安装包,在需要使用前述第一方面或第一方面的任意可能的实现中提供的方法的情况下,可以下载该计算机程序产品并在处理器上执行该计算机程序产品。
第十方面,本申请还提供一种计算机程序产品,所述计算机程序产品包括计算机程序代码,在所述计算机程序代码被处理器执行时,所述处理器执行前述第二方面或第二方面的任意可能的实现中提供的方法。该计算机程序产品可以为一个软件安装包,在需要使用前述第二方面或第二方面的任意可能的实现中提供的方法的情况下,可以下载该计算机程序产品并在处理器上执行该计算机程序产品。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请提供的一种系统架构示意图;
图2A为本申请提供的一种示例图;
图2B为本申请提供的又一种示例图;
图3为本申请提供的一种长连接转移方法的流程示意图;
图4为本申请提供的又一种系统架构示意图;
图5为本申请提供的又一种长连接转移方法的流程示意图;
图6为本申请提供的第一长连接转移装置的结构示意图;
图7为本申请提供的第二长连接转移装置的结构示意图;
图8为本申请提供的一种计算设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
本申请中,“第一”“第二”等用于区别不同的对象,而并非用于描述特定的顺序。
首先对本申请涉及的名词解释说明。
传输层安全协议(transport layer security,TLS),一种安全协议,用于在两个通信应用程序之间提供保密性和数据完整性。
长连接(long connection),在一个连接上可以连续发送多个数据包,连接保持期间,如果没有数据包发送,需要双方发链路检测包。
灰度发布(gray release),又称灰度测试,是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。
先描述用户终端与服务器端之间的连接,以现有技术中的图为例子介绍。
参见图1,图1为本申请提供的一种系统架构示意图,系统包括至少一个用户终端、负载均衡器(elastic load balance,ELB)、第一代理服务器和至少一台服务器。其中,至少一个用户终端可以包括计算机、笔记本、手机、平板电脑、ipad、可穿戴的电子设备等中的一种或多种。负载均衡器,用于将各个用户终端的流量均衡地发送至第一代理服务器。第一代理服务器例如可以是代理服务器,这里主要运用第一代理服务器上的服务网格,服务网格用于管理、发现服务器,服务网格中定义了一些通信协议或通信规则,服务网格根据这些通信协议或通信规则,确定将哪些流量发往哪个服务器,服务网格例如可以为IstioGateway。
图1中,每台服务器上安装有一个或多个实例,例如,服务器上安装有实例1,在可能的场景中,可以是一个用户终端与一台服务器上的实例1建立长连接,并进行通信,在可能的场景中,也可以是多个用户终端均与同一台服务器上的实例1建立长连接,进行通信。其中,每一个用户终端与同它进行通信的服务器之间均存在一条通信链路,不同的用户终端,通信链路不同,换句话说,用户终端与第一代理服务器之间同第一代理服务器与服务器之间维持等量长连接。
当服务器上存在多个实例,在对多个实例进行升级、更新时,一般采用滚动升级的方式。例如,图2A和图2B为本申请提供的一种示例图。图2A中,服务器A上存在3个示例,分别为实例1、实例2和实例3,其中,用户终端1与服务器A上的实例1进行通信,用户终端2与服务器A上的实例2进行通信,用户终端3与服务器A上的实例3进行通信。在对服务器A上的3个实例进行升级时,一个一个地分别进行升级,比如可以先升级实例2,用新版本的实例2逐步替换旧版本的实例2,直至新版本的实例2完全替换旧版本的实例2,实例2升级完成;再升级实例3,同样用新版本的实例3逐步替换旧版本的实例3,直至新版本的实例3完全替换旧版本的实例3,实例3升级完成;用同样的方法再升级实例1。各个实例滚动升级的顺序可以是任意的,这里仅仅用于举例。例如,参见图2B所示,图2B中实例2已经升级完成(图2B中实例2的图标颜色不同于图2A中实例2的颜色,图2A中实例2为旧版本的,图2B中实例2是升级后的新版本的,这里用颜色进行区分);图2B中实例3正在升级(图2B中实例3的图标颜色不同于图2A中实例3的颜色,图2A中实例3为旧版本的,图2B中实例3正在升级过程中,这里用颜色进行区分);图2B中实例1还未进行升级。
但是,在每个实例升级过程中,第一代理服务器上的服务网格不支持TLS长连接,因此当服务器上的某个实例升级时,服务器会断开与该升级实例相连接的所有用户终端之间的连接,例如,在图2B中,实例3正在进行升级,则服务器A会断开与用户终端3的连接,导致用户体验不佳。另外,上述实例升级方式,使用新版本的实例逐步替换稳定旧版本的实例,在实例升级完成后,新版本的实例直接面向用户提供服务,灰度测试不足,若在用户使用新版本的实例的过程中发生异常,则需要将新版本回滚至旧版本,但版本回滚操作耗时过长,影响用户的体验感受,同时也增加产品的整个开发周期。
本申请提供了第二代理服务器(也就是权要中的代理服务器),第二代理服务器克服了第一代理服务器的弊端,在实例升级过程中,第二代理服务器支持TLS长连接,因此用户无感知实例的升级过程,换句话说,实例升级过程不会影响用户使用体验感受。另外,本申请对实例升级方式进行了改进,具体可详见下述方法实施例的描述。
本申请提供了一种长连接转移方法,参见图3,图3为本申请提供的一种长连接转移方法的流程示意图,该方法包括但不限于以下内容的描述。
S101、服务器部署第一实例。
第一实例,指的是新版本的实例。
在部署第一实例之前,服务器上存在第二实例,且服务器通过第二实例与至少一个用户终端建立长连接,进行通信。其中,第二实例,指的是已部署的旧版本的实例,也即是待升级的实例。第一实例与第二实例为不同版本的实例。
在部署第一实例之后,服务器上存在两个版本的实例,即旧版本的实例(第二实例)和新版本的实例(第一实例)。例如,若服务器上已存在旧版本的实例1,又部署了新版本的实例1,则新版本的实例1和旧版本的实例1均位于服务器上。需要说明的是,虽然第一实例位于服务器上,但服务器并未通过第一实例与其他设备建立连接及通信,服务器依然通过第二实例与其他设备建立连接及通信,也就是说,此时第一实例仅仅是部署成功。
S102、服务器对第一实例进行灰度测试。
可选的,服务器对第一实例进行灰度测试的方法可以是,服务器通过第一实例与多个测试终端建立长连接,并进行通信,基于多个测试终端对第一实例进行灰度测试。
参见图4所示,图4为本申请提供的一种系统架构示意图,图4中,策略下发中心用于向第二代理服务器下发策略,第二代理服务器用于接收策略下发中心下发的策略,并响应于策略,执行某些操作。图4中,第二实例为稳定旧版本的实例,包括旧版本的实例1、旧版本的实例2和旧版本的实例3,第一实例为新版本的实例,包括新版本的实例1、新版本的实例2和新版本的实例3。下面结合图4描述服务器通过第一实例与多个测试终端建立长连接的过程。
可选的,策略下发中心下发测试指令至第二代理服务器,测试指令用于指示服务器对第一实例进行灰度测试,第二代理服务器接收到策略下发中心下发的测试指令,响应于测试指令,接收多个测试终端中每个测试终端发送的连接请求,连接请求中携带有测试标识,并将多个测试终端中的每个测试终端的连接请求发送至服务器,服务器接收到多个测试终端中的每个测试终端发送的连接请求后,通过第一实例与每个测试终端建立连接。
其中,每个测试终端发送的连接请求中携带测试标识,目的是与普通用户终端(非测试终端)的连接请求区分开来,服务器根据测试标识确定出用户终端是否为测试终端,若连接请求中携带有测试标识,则为测试终端,服务器通过第一实例与该测试终端建立连接,若连接请求中未携带测试标识,则为普通用户终端,服务器通过第二实例与普通用户终端建立连接。本申请中,测试标识可以为任意的,只要能够根据测试标识确定用户终端是测试终端还是普通用户终端即可,本申请对测试标识的格式不作具体限定。
S103、在第一实例通过灰度测试的情况下,服务器将至少一个用户终端的长连接信息由第二实例转移至第一实例,通过第一实例与至少一个用户终端进行通信。
可选的,服务器将至少一个用户终端的长连接信息由第二实例转移至第一实例之前,服务器还用于接收第二代理服务器(也即是权要中的代理服务器)发送的长连接转移指令。
参见图4所示,在第一实例灰度测试通过后,服务器接收第二代理服务器发送的长连接转移指令,并响应于长连接转移指令,将至少一个用户终端的长连接信息由第二实例转移至第一实例,通过第一实例与至少一个用户终端进行通信,该过程可具体描述如下:策略下发中心根据第一实例的灰度测试结果,选择是否下发长连接转移指令,若第一实例灰度测试通过,则策略下发中心下发长连接转移指令,第二代理服务器接收到策略下发中心下发的长连接转移指令,将长连接转移指令发送至服务器,服务器接收到长连接转移指令,响应于长连接转移指令,将至少一个用户终端的长连接信息由第二实例转移至第一实例,通过第一实例与至少一个用户终端进行通信;若第一实例灰度测试未通过,则策略下发中心不发送长连接转移指令。
其中,策略下发中心获得第一实例灰度测试结果的方式,可以是用户输入,也可以是策略下发中心从服务器中获取。
可选的,第一实例灰度测试通过后,还可以对第一实例承载用户终端的数量进行测试。比如,若在预设时长内,服务器通过第一实例接收预设数量的用户终端的长连接请求,并通过第一实例与预设数量的用户终端进行通信,若通信过程中没有出现异常,则删除第二实例,只保留第一实例,后续通过第一实例与用户终端进行通信。若在预设时长内或预设数量的用户终端内,服务器通过第一实例与预设数量的用户终端通信过程中出现异常,则优化第一实例,重新部署优化后的第一实例,再次对优化后的第一实例进行灰度测试、承载数量测试,直至第一实例通过承载数量测试,再删除第二实例,否则不删除第二实例,以便在测试承载用户终端数量不通过的情况下,(在第一实例优化期间)使用第二实例与用户终端进行通信。
可选的,在第一实例灰度测试未通过的情况下,服务器依旧通过第二实例与至少一个用户终端长连接。在第一实例灰度测试未通过的情况下,说明第一实例存在缺陷,需要修正第一实例,然后重新部署修正后的第一实例,对修正后的第一实例进行灰度测试,因此服务器需要依旧通过第二实例与至少一个用户终端长连接。
需要说明的是,本申请中,第二实例和第一实例可以为一个实例,也可以为多个实例。
本申请,不采用直接使用新版本的实例替换旧版本的实例的方式对实例进行升级,而是在服务器上部署新版本的实例,在新版本的实例灰度通过测试后,再将与旧版本的实例长连接的所有用户终端的长连接信息转移至新版本的实例上,使用新版本的实例与用户终端进行通信。在转移成功之前,服务器一直通过第二实例与用户终端进行通信,在转移成功后,服务器通过第一实例与用户终端进行通信,服务器并删除第二实例,因此,在实例升级的整个过程中,包括从实例开始升级至实例升级结束后,或者,包括从长连接信息转移前至长连接信息转移成功后,都不影响用户的使用体验,不会造成用户体验不佳的情况。
本申请还提供了一种长连接转移方法,参见图5,图5为本申请提供的一种长连接转移方法的流程示意图,该方法包括但不限于以下内容的描述。
S201、服务器部署第一实例。
S202、第二代理服务器接收策略下发中心发送的测试指令。
S203、第二代理服务器响应于测试指令,接收多个测试终端中的每个测试终端发送的连接请求。
S204、第二代理服务器将多个测试终端中的每个测试终端的连接请求发送至服务器,相应地,服务器接收多个测试终端中的每个测试终端的连接请求。
S205、服务器使用多个测试终端对第一实例进行灰度测试。
S206、在第一实例通过灰度测试的情况下,第二代理服务器接收策略下发中心发送的长连接转移指令。
S207、第二代理服务器将长连接转移指令发送至服务器,相应地,服务器接收代理服务器发送的长连接转移指令。
S208、服务器响应于长连接转移指令,将至少一个用户终端的长连接信息由第二实例转移至第一实例,通过第一实例与至少一个用户终端进行通信。
步骤S201至S208的相关内容可参考步骤S101至S103相关内容的描述,为了说明书的简洁在此不再赘述。
本申请中,不但对第一实例进行了灰度测试,还进行了用户终端承载数量的测试,只有在第一实例通过灰度测试和用户终端承载数量的测试的前提下,服务器才会响应于长连接转移指令,将与第二实例长连接的用户终端的长连接信息转移至第一实例上,服务器通过第一实例与用户终端进行通信。本申请实施例,通过要求第一实例满足灰度测试和承载数量测试的条件,进一步保障第一实例的稳定性。
另外,在第一实例未通过灰度测试的情况下,服务器一直通过第二实例与用户终端进行通信;只有在第一实例通过灰度测试及承载量测试的情况下,服务器才将用户终端的长连接信息从第二实例转移至第一实例上,通过第一实例与用户终端进行通信,整个转移过程用户无感知,从转移前至转移后的整个过程,不影响用户的使用体验。
参见图6,图6为本申请实施例提供的第一长连接转移装置600的结构示意图,该装置600包括:
部署单元601,用于部署第一实例;测试单元602,用于对第一实例进行灰度测试;长连接转移单元603,用于在第一实例通过灰度测试的情况下,将至少一个用户终端的长连接信息由第二实例转移至第一实例;通信单元604,用于通过第一实例与至少一个用户终端进行通信;其中,第一实例与第二实例为不同版本的实例。
在可能的实现方式中,测试单元602用于:服务器接收多个测试终端的长连接请求,通过第一实例与多个测试终端建立长连接,实现对第一实例的灰度测试。
在可能的实现方式中,多个测试终端中的每个测试终端的长连接请求中携带了测试标识。
在可能的实现方式中,装置600还包括删除单元605,其中,测试单元602还用于,在第一实例通过灰度测试的情况下,通过第一实例接收预设数量的用户终端的长连接请求,测试第一实例能否承载预设数量的用户终端;长连接转移单元603用于,在第一实例能够承载预设数量的用户终端的情况下,将至少一个用户终端的长连接信息由第二实例转移至第一实例;通信单元604,用于通过第一实例与至少一个用户终端进行通信;删除单元605,用于删除第二实例。
在可能的实现方式中,通信单元604还用于,接收代理服务器发送的长连接转移指令。
上述装置600的各功能模块用于实现图3或图5实施例中所描述的方法,具体内容可参考图3或图5实施例的相关内容中的描述,为了说明书的简洁,这里不再赘述。
参见图7,图7为本申请实施例提供的第二长连接转移装置700的结构示意图,该装置700包括:
接收单元701,用于接收测试指令;测试指令用于指示服务器对第一实例进行灰度测试;接收单元701还用于,响应于测试指令,接收多个测试终端发送的连接请求;发送单元702,用于将多个测试终端的连接请求发送至服务器;多个测试终端中的每个测试终端的连接请求中携带了测试标识。
在可能的实现方式中,接收单元701还用于,接收长连接转移指令;长连接转移指令用于指示服务器将至少一个用户终端的长连接信息由第二实例转移至第一实例,通过第一实例与至少一个用户终端进行通信;其中,第一实例与第二实例为不同版本的实例;发送单元702还用于,将长连接转移指令发送至服务器。
上述装置700的各功能模块用于实现图3或图5实施例中所描述的方法,具体内容可参考图3或图5实施例的相关内容中的描述,为了说明书的简洁,这里不再赘述。
参见图8,本申请提供了一种计算设备800的结构示意图,该计算设备800可以为服务器,也可以为代理服务器,计算设备800至少包括:至少一个计算节点810以及至少一个存储节点820。其中,
计算节点810包括一个或多个处理器811、收发器812和存储器813,处理器811、收发器812和存储器813之间可以通过总线814连接。
处理器811包括一个或者多个通用处理器,通过调用存储器813中的程序代码,用于执行图6或图7中的各个功能单元的功能,若计算设备800为服务器,则处理器811通过调用存储器813中的程序代码用于执行图6中的部署单元601、测试单元602、长连接转移单元603、通信单元604和删除单元605各个功能单元的功能;若计算设备800为代理服务器,则处理器811通过调用存储器813中的程序代码用于执行图7中的接收单元701和发送单元702、等功能单元的功能。通用处理器可以是能够处理电子指令的任何类型的设备,包括中央处理器(Central Processing Unit,CPU)、微处理器、微控制器、主处理器、控制器以及ASIC(Application Specific Integrated Circuit,专用集成电路)等等。它能够是仅用于计算节点810的专用处理器或者能够与其它计算节点810共享。处理器811读取存储器813中存储的程序代码,与收发器812配合执行本申请上述实施例中服务器或代理服务器执行的方法的部分或者全部步骤。
收发器812可以为有线接口(例如以太网接口),用于与其他计算节点或用户进行通信。当收发器812为有线接口时,收发器812可以采用TCP/IP之上的协议族,例如,RAAS协议、远程函数调用(Remote Function Call,RFC)协议、简单对象访问协议(Simple ObjectAccess Protocol,SOAP)协议、简单网络管理协议(Simple Network ManagementProtocol,SNMP)协议、公共对象请求代理体系结构(Common Object Request BrokerArchitecture,CORBA)协议以及分布式协议等等。
存储器813可以包括易失性存储器(Volatile Memory),例如随机存取存储器(Random Access Memory,RAM);存储器也可以包括非易失性存储器(Non-VolatileMemory),例如只读存储器(Read-Only Memory,ROM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD)存储器还可以包括上述种类的存储器的组合。
存储节点820包括一个或多个存储控制器821、存储阵列822。其中,存储控制器821和存储阵列822之间可以通过总线823连接。
存储控制器821包括一个或者多个通用处理器,其中,通用处理器可以是能够处理电子指令的任何类型的设备,包括CPU、微处理器、微控制器、主处理器、控制器以及ASIC等等。它能够是仅用于单个存储节点820的专用处理器或者能够与计算节点810或者其它存储节点820共享。可以理解,在本实施例中,每个存储节点包括一个存储控制器,在其他的实施例中,也可以多个存储节点共享一个存储控制器,此处不作具体限定。
存储阵列822可以包括多个存储器。存储器可以是非易失性存储器,例如ROM、快闪存储器、HDD或SSD存储器还可以包括上述种类的存储器的组合。例如,存储阵列可以是由多个HDD或者多个SDD组成,或者,存储阵列可以是由HDD以及SDD组成。其中,多个存储器在存储控制器821的协助下按不同的方式组合起来形成存储器组。可选地,存储阵列822可以包括一个或者多个数据中心。多个数据中心可以设置在同一个地点,或者,分别在不同的地点,此处不作具体限定。存储阵列822可以存储有程序代码以及程序数据。若计算设备800为服务器,程序代码包括部署单元601的代码、测试单元602的代码、长连接转移单元603的代码、通信单元604的代码、删除单元605的代码,程序数据包括:第一实例的程序数据、第二实例的程序数据、灰度测试结果、长连接信息等等;若计算设备800为代理服务器,程序代码包括接收单元701的代码、发送单元702的代码,程序数据包括:测试指令数据、长连接信息等等。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,计算机程序被硬件(例如处理器等)执行,以实现本申请实施例中第一长连接转移装置执行的任意一种方法的部分或者全部步骤,或者,以实现本申请实施例中第二长连接转移装置执行的任意一种方法的部分或者全部步骤。
本申请实施例还提供一种计算机程序产品,当计算机程序产品被计算机读取并执行时,使得第一长连接转移装置执行本申请实施例中任意一种长连接转移方法的部分或全部步骤,或者,使得第二长连接转移装置执行本申请实施例中任意一种长连接转移方法的部分或全部步骤。
本申请实施例还提供了一种系统,包括服务器和代理服务器,其中,服务器可以为第一长连接转移装置,代理服务器可以为第二长连接转移装置。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、存储盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态存储盘SolidState Disk,SSD))等。在所述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,也可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本申请实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (19)
1.一种长连接转移方法,其特征在于,所述方法包括:
服务器部署第一实例;
所述服务器对所述第一实例进行灰度测试;
在所述第一实例通过灰度测试的情况下,所述服务器将至少一个用户终端的长连接信息由第二实例转移至所述第一实例,通过所述第一实例与所述至少一个用户终端进行通信;其中,所述第一实例与所述第二实例为不同版本的实例。
2.根据权利要求1所述的方法,其特征在于,所述服务器对所述第一实例进行灰度测试包括:
所述服务器接收多个测试终端的长连接请求,通过所述第一实例与所述多个测试终端建立长连接,实现对所述第一实例的灰度测试。
3.根据权利要求2所述的方法,其特征在于,所述多个测试终端中的每个测试终端的长连接请求中携带了测试标识。
4.根据权利要求1-3任一项所述的方法,其特征在于,在所述第一实例通过灰度测试的情况下,所述服务器将至少一个用户终端的长连接信息由第二实例转移至所述第一实例,通过所述第一实例与所述至少一个用户终端进行通信,包括:
在所述第一实例通过灰度测试的情况下,通过所述第一实例接收预设数量的用户终端的长连接请求,测试所述第一实例能否承载所述预设数量的用户终端;
若能,所述服务器将所述至少一个用户终端的长连接信息由所述第二实例转移至所述第一实例,通过所述第一实例与所述至少一个用户终端进行通信,删除所述第二实例。
5.根据权利要求1或4所述的方法,其特征在于,在所述服务器将所述至少一个用户终端的长连接信息由第二实例转移至所述第一实例之前,所述方法还包括:
所述服务器接收代理服务器发送的长连接转移指令。
6.一种长连接转移方法,其特征在于,包括:
代理服务器接收测试指令;所述测试指令用于指示服务器对第一实例进行灰度测试;
所述代理服务器响应于所述测试指令,接收多个测试终端发送的连接请求并将所述多个测试终端的连接请求发送至所述服务器;所述多个测试终端中的每个测试终端的连接请求中携带了测试标识。
7.根据权利要求6所述的方法,其特征在于,在所述第一实例通过灰度测试后,所述方法还包括:
所述代理服务器接收长连接转移指令;所述长连接转移指令用于指示所述服务器将至少一个用户终端的长连接信息由第二实例转移至所述第一实例,通过所述第一实例与所述至少一个用户终端进行通信;其中,所述第一实例与所述第二实例为不同版本的实例;
所述代理服务器将所述长连接转移指令发送至所述服务器。
8.第一长连接转移装置,其特征在于,包括:
部署单元,用于部署第一实例;
测试单元,用于对所述第一实例进行灰度测试;
长连接转移单元,用于在所述第一实例通过灰度测试的情况下,将至少一个用户终端的长连接信息由第二实例转移至所述第一实例;
通信单元,用于通过所述第一实例与所述至少一个用户终端进行通信;
其中,所述第一实例与所述第二实例为不同版本的实例。
9.根据权利要求8所述的装置,其特征在于,所述测试单元用于:
所述服务器接收多个测试终端的长连接请求,通过所述第一实例与所述多个测试终端建立长连接,实现对所述第一实例的灰度测试。
10.根据权利要求9所述的装置,其特征在于,所述多个测试终端中的每个测试终端的长连接请求中携带了测试标识。
11.根据权利要求8-10任一项所述的装置,其特征在于,所述装置还包括删除单元,其中,
所述测试单元还用于,在所述第一实例通过灰度测试的情况下,通过所述第一实例接收预设数量的用户终端的长连接请求,测试所述第一实例能否承载所述预设数量的用户终端;
所述长连接转移单元用于,在所述第一实例能够承载所述预设数量的用户终端的情况下,将所述至少一个用户终端的长连接信息由所述第二实例转移至所述第一实例;
所述通信单元,用于通过所述第一实例与所述至少一个用户终端进行通信;
所述删除单元,用于删除所述第二实例。
12.根据权利要求8或11所述的装置,其特征在于,所述通信单元还用于,接收代理服务器发送的长连接转移指令。
13.第二长连接转移装置,其特征在于,包括:
接收单元,用于接收测试指令;所述测试指令用于指示服务器对第一实例进行灰度测试;
所述接收单元还用于,响应于所述测试指令,接收多个测试终端发送的连接请求;
发送单元,用于将所述多个测试终端的连接请求发送至所述服务器;所述多个测试终端中的每个测试终端的连接请求中携带了测试标识。
14.根据权利要求13所述的装置,其特征在于,
所述接收单元还用于,接收长连接转移指令;所述长连接转移指令用于指示所述服务器将至少一个用户终端的长连接信息由第二实例转移至所述第一实例,通过所述第一实例与所述至少一个用户终端进行通信;其中,所述第一实例与所述第二实例为不同版本的实例;
所述发送单元还用于,将所述长连接转移指令发送至所述服务器。
15.一种服务器,其特征在于,包括处理器和存储器,所述存储器用于存储指令,所述处理器用于调用所述存储器中存储的指令执行如权利要求1-5任一项所述的方法。
16.一种计算机存储介质,其特征在于,包括程序指令,当所述程序指令被处理器运行时,所述处理器执行如权利要求1-5任一项所述的方法。
17.一种代理服务器,其特征在于,包括处理器和存储器,所述存储器用于存储指令,所述处理器用于调用所述存储器中存储的指令执行如权利要求6或权利要求7所述的方法。
18.一种计算机存储介质,其特征在于,包括程序指令,当所述程序指令被处理器运行时,所述处理器执行如权利要求6或权利要求7所述的方法。
19.一种系统,其特征在于,包括第一长连接转移装置和第二长连接转移装置,所述第一长连接转移装置用于执行如权利要求1-5任一项所述的方法,所述第二长连接转移装置用于执行如权利要求6或权利要求7所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110722725.1A CN115599412A (zh) | 2021-06-28 | 2021-06-28 | 一种长连接转移方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110722725.1A CN115599412A (zh) | 2021-06-28 | 2021-06-28 | 一种长连接转移方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115599412A true CN115599412A (zh) | 2023-01-13 |
Family
ID=84841648
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110722725.1A Pending CN115599412A (zh) | 2021-06-28 | 2021-06-28 | 一种长连接转移方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115599412A (zh) |
-
2021
- 2021-06-28 CN CN202110722725.1A patent/CN115599412A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106844137B (zh) | 服务器的监控方法和装置 | |
CN109768871B (zh) | 配置多个虚拟网卡的方法、宿主机和存储介质 | |
TWI557572B (zh) | 用於在主機與行動裝置間之任務的雙向動態卸載之方法、系統及電腦可讀儲存裝置(一) | |
WO2018049888A1 (zh) | 应用数据的迁移方法及装置 | |
EP3299957A1 (en) | Performing live updates to file system volumes | |
CN105812435B (zh) | 应用升级数据包处理方法、装置、电子设备及系统 | |
US20040039887A1 (en) | Method and apparatus for managing resources stored on a communication device | |
US20130060890A1 (en) | Apparatus and method for providing application execution using a cloud system | |
CN109918085B (zh) | 提供软件分发和更新服务而不管端点机的状态或物理位置 | |
CN111585805B (zh) | 平滑发布升级方法、装置、计算机系统及可读存储介质 | |
CN112398689A (zh) | 网络恢复方法、装置、存储介质及电子设备 | |
CN102916907A (zh) | 基于家庭网关的下载方法和系统以及家庭网关 | |
CN109996349B (zh) | 一种会话恢复方法及其装置 | |
CN115599412A (zh) | 一种长连接转移方法及相关装置 | |
CN106528199A (zh) | 一种汽车仪表盘系统的更新方法及终端 | |
CN116418791A (zh) | 固件升级方法、固件升级系统、服务器及存储介质 | |
CN105338058A (zh) | 一种应用更新的方法及装置 | |
WO2016206399A1 (zh) | 通信设备中软件版本的升级方法、装置及通信设备 | |
CN114968776A (zh) | 一种应用程序的检测方法和装置 | |
CN104348646A (zh) | 配置数据处理方法、装置及系统 | |
CN109218415B (zh) | 一种分布式节点管理的方法、节点及存储介质 | |
CN109450885B (zh) | 网络数据拦截方法、装置、电子设备及存储介质 | |
CN114610331A (zh) | 软件安装方法和系统 | |
CN107147712B (zh) | 更新网络应用程序的方法及装置 | |
CN113050978A (zh) | 应用的灰度发布控制方法、装置、设备及计算机存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |