掌桥专利:专业的专利平台
掌桥专利
首页

网关切换方法、网关切换系统、网关控制器及网关

文献发布时间:2024-04-18 19:58:53


网关切换方法、网关切换系统、网关控制器及网关

技术领域

本发明涉及通信技术领域,尤其涉及一种网关切换方法、网关切换系统、网关控制器及网关。

背景技术

随着云时代的到来,办公方式也在逐步演化。由传统的固定PC(personalcomputer,个人计算机)办公、移动PC办公,逐渐演化为云办公方式,目前,主要通过云桌面实现办公。

目前,客户端通过接入网关(access gateway,简称AG)从而连接到云桌面,连接建立后云桌面会将心跳和数据流在该连接上传递,连接会一直持续到客户端断开连接,即所谓的长连接。1个AG可以支持N路长连接,因此涉及到AG的负载均衡。

为了解决负载均衡的问题,通过多个AG定时上报负载到管理系统中,管理系统在客户端请求接入云桌面服务端时根据负载情况选择低负载的AG进行分配,客户端建立和其分配到的AG的长连接,以此来达到不同AG的负载均衡。

但是,上述方式在连接建立前进行负载均衡,连接建立后不再有能力重新进行AG的负载均衡,而云桌面是一种传输数据量不定的系统,随用户使用场景不同传输数据量不同,对AG的负载压力也不同。当同一个AG上云桌面的连接数较多时,如果所有用户都进行高压力的场景,例如看直播,则该AG连接的所有用户体验都会受到影响。

公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。

发明内容

本发明实施例提供了一种网关切换方法、网关切换系统、网关控制器及网关,可在客户端与网关长连接的过程中,实现网关切换。

第一方面,本发明实施例提供了一种网关切换方法,方法应用于网关切换系统,网关切换系统包括网关控制器、第一网关和第二网关,方法包括:网关控制器获取第一网关的负载参数,第一网关与多个客户端之间建立有多个长连接;网关控制器根据第一网关的负载参数,向第一网关发送连接迁移指令,迁移指令包括第二网关的地址,连接迁移指令指示对至少一个长连接进行切换,多个长连接包括至少一个长连接;第一网关将第二网关的地址发送至至少一个长连接对应的客户端,以使得至少一个长连接对应的客户端与第二网关建立长连接。

本方案中,在网关建立多个长连接后,通过网关控制器实时监控该网关的负载情况,并基于网关的负载情况控制该网关的长连接迁移到其他的网关,在长连接的过程中实现网关的长连接的迁移,确保负载均衡,从而提高用户体验。

在一种可能的实现方式中,第一网关的负载参数包括第一网关自身的参数。

在该实现方式下,在一个例子中,网关控制器根据第一网关的负载参数,向第一网关发送连接迁移指令,包括:网关控制器根据第一网关的负载参数,确定第一网关的负载值,当负载值高于负载阈值,向第一网关发送连接迁移指令。

本方案中,在网关的负载较高时,控制该网关的长连接迁移到其他的低负载的网关,从而提高用户体验。

在一种可能的实现方式中,第一网关的负载参数包括多个长连接的负载参数。

在该实现方式下,在一个例子中,多个长连接的负载参数包括时延;网关控制器根据第一网关的负载参数,向第一网关发送连接迁移指令,包括:网关控制器确定多个长连接中至少一个长连接的时延值大于时延阈值,向第一网关发送连接迁移指令。

本方案中,综合考虑长连接的时延值的大小,以及时延较高的长连接的数量,在网关的长连接的时延较高,且时延较高的长连接的数目较多时,说明网关的消息转发速度较低,用户体验可能较差,此时,向网关发送连接迁移指令,改善网关的长连接的时延,提高用户体验。

在一种可能的实现方式中,第一网关将第二网关的地址发送至至少一个长连接对应的客户端,包括:第一网关将第二网关的地址发送至服务控制器,服务控制器与多个服务端相连,多个服务端通过网络与多个客户端进行通信。

本方案中,网关实现客户端和服务端之间的业务面消息的转发,客户端和服务端通过其他的网络实现控制面消息的通信,使得业务面消息和控制面消息相分离,避免侵入修改网关业务面转发逻辑,确保网络安全。

在一种可能的实现方式中,至少一个客户端中包括目标客户端,方法还包括:

第一网关接收目标客户端发送的连接中断请求;第一网关根据连接中断请求中断与目标客户端的长连接。

本方案中,在长连接迁移成功后,网关会拆除已经迁移的长连接,从而改善网关内未迁移的长连接的时延,确保用户体验。

在一种可能的实现方式中,客户端为云桌面客户端。

本方案中,客户端为云桌面客户端,在大量云桌面并发长连接到同一网关,在长连接的过程中实现网关的动态负载均衡以保证终端用户云桌面的使用体验。

在一种可能的实现方式中,连接迁移指令还包括长连接选取策略,长连接选取策略指示了从多个长连接中选择至少一个长连接的方法;方法还包括:第一网关根据长连接选取策略,从多个长连接中选取至少一个长连接。

本方案中,无需网关控制器决定待迁移的长连接,而是由网关执行网关控制器确定的长长连接选取策略,不仅能够在一定程度上降低网关控制器决策的压力,而且网关能够结合长连接的实际情况迁移链路情况较差的长连接,确保用户体验。

第二方面,本发明实施例提供了一种网关切换方法,方法应用于网关控制器,方法包括:获取第一网关的负载参数,第一网关与多个客户端之间建立有多个长连接;根据第一网关的负载参数,向第一网关发送连接迁移指令,以使得第一网关将第二网关地址发送至至少一个长连接对应的客户端,迁移指令包括第二网关的地址,多个长连接包括至少一个长连接。

本方案中的有效效果参见上文,不再赘述。

在一种可能的实现方式中,第一网关的负载参数包括第一网关自身的参数。

在该实现方式下,在一个例子中,根据第一网关的负载参数,向第一网关发送连接迁移指令,包括:根据第一网关的负载参数,确定第一网关的负载值,当负载值高于负载阈值,向第一网关发送连接迁移指令。

本方案中的有效效果参见上文,不再赘述。

在一种可能的实现方式中,第一网关的负载参数包括多个长连接的负载参数。

在该实现方式下,在一个例子中,多个长连接的负载参数包括时延;网关控制器根据第一网关的负载参数,向第一网关发送连接迁移指令,包括:网关控制器确定多个长连接中至少一个长连接的时延值大于时延阈值,向第一网关发送连接迁移指令。

本方案中的有效效果参见上文,不再赘述。

在一种可能的实现方式中,客户端为云桌面客户端。

本方案中的有效效果参见上文,不再赘述。

在一种可能的实现方式中,连接迁移指令还包括长连接选取策略,长连接选取策略指示了从多个长连接中选择至少一个长连接的方案,以使第一网关根据长连接选取策略,从多个长连接中选取至少一个长连接。

本方案中的有效效果参见上文,不再赘述。

第三方面,本发明实施例提供了一种网关切换方法,方法应用于第一网关,方法包括:接收网关控制器发送的连接迁移指令,连接迁移指令包括第二网关的地址;将第二网关的地址发送至至少一个长连接对应的客户端,以使得至少一个客户端与第二网关建立长连接,第一网关与多个客户端建立有多个长连接,多个长连接包括至少一个长连接。

在一种可能的实现方式中,将第二网关的地址发送至至少一个长连接对应的客户端,包括:将第二网关的地址发送至服务控制器,服务控制器与多个服务端相连,多个服务端通过网络与多个客户端进行通信。

在一种可能的实现方式中,至少一个客户端中包括目标客户端,方法还包括:接收目标客户端发送的连接中断请求;根据连接中断请求中断与目标客户端的长连接。

在一种可能的实现方式中,连接迁移指令还包括长连接选取策略,长连接选取策略指示了从多个长连接中选择至少一个长连接的方案;方法还包括:根据长连接选取策略,从多个长连接中选取至少一个长连接。

第四方面,本发明实施例提供了一种网关切换系统,该系统可以包括网关控制器和第一网关,其中,系统用于执行第一方面中所提供的方法,网关控制器用于执行第二方面中所提供的方法,第一网关用于执行第三方面中所提供的方法。

网关切换系统实现的功能与第一方面中提供的方法相同,达到的有益效果也相同,在此不再赘述。

网关切换系统中网关控制器实现的功能与第二方面中提供的方法相同,达到的有益效果也相同,在此不再赘述。

网关切换系统中第一网关实现的功能与第三方面中提供的方法相同,达到的有益效果也相同,在此不再赘述。

第五方面,本发明实施例提供了一种网关控制器,包括:若干个模块,各个模块用于执行本发明第二方面提供的网关切换方法中的各个步骤,关于模块的划分在此不做限制。该网关控制器中各个模块所执行的具体功能及达到的有益效果请参考本发明第二方面提供的网关切换方法的各个步骤的功能,在此不再赘述。

示例地,网关控制器包括通信模块和处理模块。通信模块,用于获取第一网关的负载参数,第一网关与多个客户端之间建立有多个长连接;处理模块,用于根据第一网关的负载参数,向第一网关发送连接迁移指令,以使得第一网关将第二网关地址发送至至少一个长连接对应的客户端,迁移指令包括第二网关的地址,多个长连接包括至少一个长连接。

第六方面,本发明实施例提供了一种网关,包括:若干个模块,各个模块用于执行本发明第三方面提供的网关切换方法中的各个步骤,关于模块的划分在此不做限制。该网关控制器中各个模块所执行的具体功能及达到的有益效果请参考本发明第三方面提供的网关切换方法的各个步骤的功能,在此不再赘述。

示例地,网关包括通信模块和处理模块。通信模块用于接收网关控制器发送的连接迁移指令,连接迁移指令包括第二网关的地址。处理模块将第二网关的地址发送至至少一个长连接对应的客户端,以使得至少一个客户端与第二网关建立长连接,网关与多个客户端建立有多个长连接,多个长连接包括至少一个长连接。

第七方面,本发明实施例提供了一种计算机集群,包括至少一个计算设备,每个计算设备包括处理器和存储器;所述至少一个计算设备的处理器用于执行所述至少一个计算设备的存储器中存储的指令,以使得所述计算设备集群执行如第一方面提供的方法,或执行如第二方面提供的方法,或执行如第三方面提供的方法。

其中,该存储器可以集成在芯片或处理器中,也可以独立于芯片或处理器之外。

第八方面,本发明实施例提供了一种计算机存储介质,计算机存储介质中存储有指令,当指令在计算机上运行时,使得计算机执行第二方面中所提供的方法,或者执行第三方面中所提供的方法。

附图说明

图1是本发明实施例提供的一种网关切换系统的系统架构图;

图2a是本发明实施例提供的一种网关切换方案的示意图一;

图2b是本发明实施例提供的一种网关切换方案的示意图二;

图2c是本发明实施例提供的一种网关切换方案的示意图三;

图3是本发明实施例提供的电子设备的结构示意图;

图4是图1提供的网关切换系统的网关切换方案的流程示意图;

图5是本发明实施例提供的第一种网关切换方法的流程示意图;

图6是本发明实施例提供的第二种网关切换方法的流程示意图;

图7是本发明实施例提供的第三种网关切换方法的流程示意图;

图8是本发明实施例提供的一种网关控制器的结构示意图;

图9是本发明实施例提供的一种网关的结构示意图;

图10是本发明实施例提供的一种网关切换系统的结构示意图。

具体实施方式

为了使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图,对本发明实施例中的技术方案进行描述。

在本发明实施例的描述中,“示例性的”、“例如”或者“举例来说”等词用于表示作例子、例证或说明。本发明实施例中被描述为“示例性的”、“例如”或者“举例来说”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”、“例如”或者“举例来说”等词旨在以具体方式呈现相关概念。

在本发明实施例的描述中,术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,单独存在B,同时存在A和B这三种情况。另外,除非另有说明,术语“多个”的含义是指两个或两个以上。例如,多个系统是指两个或两个以上的系统,多个终端是指两个或两个以上的终端。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。

随着云时代的到来,办公方式也在逐步演化。由传统的固定PC办公、移动PC办公,逐渐演化为云办公方式,目前,主要通过云桌面实现办公。

目前,客户端通过接入网关(AG)从而连接到云桌面,连接建立后云桌面会将心跳和数据流在该连接上传递,连接会一直持续到客户端断开连接,即所谓的长连接。1个AG可以支持N路长连接,因此涉及到AG的负载均衡。

为了解决负载均衡的问题,通过多个AG定时上报负载到管理系统中,管理系统在客户端请求接入云桌面服务端时根据负载情况选择低负载的AG进行分配,客户端建立和其分配到的AG的长连接,以此来达到不同AG的负载均衡。

但是,上述方式在连接建立前进行负载均衡,连接建立后不再有能力重新进行AG的负载均衡,而云桌面是一种传输数据量不定的系统,随用户使用场景不同传输数据量不同,对AG的负载压力也不同。当同一个AG上云桌面的连接数较多时,如果所有用户都进行高压力的场景,例如看直播,则该AG连接的所有用户体验都会受到影响。

基于上述技术问题,本发明实施例提出了客户端在长连接的过程中进行网关切换,从而实现负载均衡。

基于上述思路,本发明实施例提供了一种网关切换系统。图1是本发明实施例提供的一种网关切换系统的系统架构图。如图1所示,该系统包括:客户端层、服务端层、网关层、网关控制器、服务控制器。本发明实施例中,网关切换系统可以实现一种单独的云服务,也可以实现多种云服务。示例地,云服务包括云查询、云存储、云计算、云安全、云办公等等。本发明实施例对云服务的内容和种类不作具体限定,具体可结合实际需求确定。

其中,客户端层可以通过网络1连接到网关层,网关层通过网络2连接到服务端层,通过网络1和网络2实现客户端层和服务端层的业务面消息(客户端和服务端之间的业务数据)的通信。服务端层和客户端层还可以网络5连接,通过网络5实现服务端层和客户端层之间的业务面消息之外的控制面消息的通信,用于控制客户端实现某一操作,或者,服务端实现某一操作。需要说明的是,控制面消息与业务面消息相分离,关于控制的指令走控制面消息,避免侵入修改网关业务面消息的转发逻辑;另外,控制面消息为服务控制器发送的给服务端层的消息。另外,网关控制器和网关层通过网络3连接,服务控制器可以通过网络4连接服务端层,网关层通过网络6连接服务控制器,服务控制器通过网络7和客户端层直接交互,网关控制器通过网络8和客户端层直接交互。需要说明的是,上述网络的连接方式仅仅作为示例,在保证业务面消息和控制面消息通过不同网络通信的前提下,本发明实施例对客户端层、服务端层、网关层、网关控制器、服务控制器之间如何连接不做任何限定,具体可结合实际需求确定。需要说明的是,图1仅仅作为示例并不构成具体限定,系统也可以包括比图1中更多或更少的网络。

这里,网络1可以为有线网络或无线网络。示例地,有线网络可以为电缆网络、光纤网络、数字数据网(Digital Data Network,DDN)等,无线网络可以为电信网络、内部网络、互联网、局域网络(Local Area Network,LAN)、广域网络(Wide Area Network,WAN)、无线局域网络(Wireless Local Area Network,WLAN)、城域网(Metropolitan Area Network,MAN)、公共交换电话网络(Public Service Telephone Network,PSTN)、蓝牙网络、紫蜂网络(ZigBee)、移动电话(Global System for Mobile Communications,GSM)、CDMA(CodeDivision Multiple Access)网络、CPRS(GeneralPacketRadioService)网络等或其任意组合。可以理解的是,网络1可使用任何已知的网络通信协议来实现不同客户端层和网关之间的通信,上述网络通信协议可以是各种有线或无线通信协议,诸如以太网、通用串行总线(universal serial bus,USB)、火线(firewire)、全球移动通讯系统(global system formobile communications,GSM)、通用分组无线服务(general packet radio service,GPRS)、码分多址接入(code division multiple access,CDMA)、宽带码分多址(widebandcode division multiple access,WCDMA),时分码分多址(time-division code divisionmultiple access,TD-SCDMA)、长期演进(long term evolution,LTE)、新空口(new radio,NR)、蓝牙(bluetooth)、无线保真(wireless fidelity,Wi-Fi)等通信协议。

网络2、网络3、网络4、网络5、网络6、网络7、网络8各自与网络1类似,不再赘述。在实际应用中,网络1可以是公网,即互联网,比如广域网、外网。网络2可以是开发服务端层的企业或公司的私网,指的就是路由器下、交换机下创建的局部互联网络,比如,内网、局域网,从而确保数据安全。网络3、网络4、网络5、网络6、网络7、网络8可以是公网也可以是私网,优选私网。

其中,客户端层包括多个客户端。图1示出了N个客户端,分别表示为客户端1、客户端2、…、客户端N。本发明实施例中,客户端用于向用户提供服务,实现业务。

客户端可以理解为用于实现业务的应用程序。通常一个客户端用于实现一个业务,比如,云桌面,云会议。不同的客户端可以实现相同的业务,也可以实现不同的业务。本发明实施例并不意图对客户端实现的业务进行限定,具体可结合实际需求确定。举例来说,客户端层为用于实现云办公的客户端的集合。这里,云办公可以包括云桌面、云应用,其中,云应用可以为云会议、云淘宝之类的可以在云上运行的应用。示例地,客户端可以为云桌面客户端。

在实际应用中,客户端安装在电子设备上,用户通过电子设备运行客户端,使得客户端为用户提供服务,满足不同的业务需求。当然在一些可能的情况,电子设备安装有浏览器,用户可以通过浏览器访问客户端。

其中,服务端层包括多个服务端,图1示出了n个服务端,分别表示为服务端1、服务端2、…、服务端n。本发明实施例中,服务端用于向客户端提供服务,实现业务。

需要说明的是,服务端通过网关层中的一个网关和客户端之间进行业务面消息交流,通过另一个网络和客户端之间进行控制面消息的交互。如图1所示,服务端层和客户端层通过网络2、网关层和网络1进行业务面消息的通信,服务端层和客户端层通过网络5进行控制面消息的通信。

本发明实施例中,服务端可以理解为为客户端提供服务的应用程序。不同的服务端可以提供相同的服务,也可以提供不同的服务,具体需要结合服务端连接的客户端需要实现的业务。本发明实施例并不意图对服务端提供的服务进行限定,具体可结合实际需求确定。

在实际应用中,服务端安装在电子设备上,从而可以运行服务端,为客户端提供服务,满足不同的业务需求。

为了更好的理解本发明实施例提到的客户端和服务端。下面结合具体地应用场景进行说明。

示例1,客户端实现的业务为虚拟云桌面,比如可以为云桌面应用,该应用可以理解为由开发商开发的用于实现虚拟云桌面的应用。一个服务端可以为一个虚拟云桌面。在实际应用中,用户在客户端(云桌面应用)通过鉴权后连接上服务端(虚拟云桌面),并通过输入操作指令(例如键盘输入、鼠标点击)等方式控制所对应的服务端(虚拟云桌面)的运行,该服务端(虚拟云桌面)根据输入操作指令运行,并将当前桌面信息压缩成桌面数据流(业务面消息)发送到客户端,从而在客户端(云桌面应用)的显示屏上显示反馈回来的桌面信息,形成人机交互过程。

在实际应用中,一个电子设备可以虚拟出若干个虚拟云桌面,一个虚拟云桌面作为一个服务端。另一个电子设备可以安装客户端,或者通过浏览器访问客户端。

需要说明的是,在该应用场景下,一个客户端连接一个服务端。但是客户端所在的电子设备可以连接若干个服务端。

示例2,客户端实现的业务为云会议,比如,可以为云会议应用,该应用可以理解为由开发商开发的用于实现云会议的应用。一个服务端可以为一个虚拟会议室。在实际应用中,多个客户端(云会议应用)分别通过鉴权后连接上一个服务端(虚拟会议室)。

在一个场景中,当云会议为语音会议时,当某一个客户端(云会议应用)采集到用户语音时,该客户端会将采集到的用户语音(业务面消息)发送至服务端(虚拟会议室),该服务端(虚拟会议室)并将当前音频数据流(业务面消息)发送到其他的客户端(云会议应用),从而通过其他的客户端(云会议应用)的麦克风播放音频。

在另一个场景中,当某一个客户端(云会议应用)通过输入操作指令(例如键盘输入、鼠标点击)等方式上传会议文件,该客户端会将会议文件(业务面消息)上传至服务端(虚拟会议室),该服务端(虚拟会议室)并将会议文件发送到其他的客户端(云会议应用),从而便于其他的客户端(云会议应用)进行操作以查看会议文件。

在再一个场景中,当某一个客户端(云会议应用)通过输入操作指令(例如鼠标点击)等方式进行屏幕共享时,该客户端会将当前屏幕内容(业务面消息)上传至服务端(虚拟会议室),该服务端(虚拟会议室)并将当前屏幕内容发送到其他的客户端(云会议应用),从而通过其他的客户端(云会议应用)的显示屏显示当前屏幕内容,实现屏幕共享。

在实际应用中,一个电子设备可以虚拟出若干个虚拟会议室,一个虚拟会议室作为一个服务端。另一个电子设备可以安装客户端,或者通过浏览器访问客户端。

需要说明的是,在该应用场景下,多个客户端连接一个服务端。

这里,在一个例子中,本方案中涉及的电子设备可以为手机,平板电脑,服务器等。本发明实施例对此不做具体限定,具体可结合实际需求确定电子设备。

其中,网关层包括多个网关。图1示出了M个网关,分别表示为网关1、网关2、…、网关M。本发明实施例中,网关用于实现客户端层和服务端层之间的业务面消息的通信。需要说明的是,本发明实施例中的网关是专门用于长连接的网关,一般不会涉及到短连接。示例地,长连接的协议可以为TCP,本发明实施例并不意图对长连接的协议进行限定,具体可结合实际需求确定。

本发明实施例中,网关层中的各个网关按照周期性的上报负载情况到网关控制器。示例地,周期可以为1s,1分钟,1小时,本发明实施例对此不作具体限定,具体可结合实际需求确定周期的长短。

需要说明的是,网关建立的长连接表示客户端和服务端之间的连接链路,至少包括客户端的地址和服务端的地址。

其中,网关控制器用于管理网关层的各网关。本发明实施例中,网关控制器可以控制网关进行长连接迁移。另外,还可以在客户端请求网关时为客户端分配网关。

根据一种可行的实现方式,网关控制器基于网关层中各个网关上报的负载情况进行网关分配决策,从而在长连接前实现负载均衡。

举例来说,网关控制器会基于网关层中各个网关各自的负载情况,为请求分配网关的客户端分配一个网关,并将该网关的地址发送到请求分配网关的客户端,该客户端基于分配到的网关的地址,建立和该网关的长连接。

根据一种可行的实现方式,网关控制器基于网关层中各个网关上报的负载情况进行长连接的迁移决策,在网关的负载较高时,为高负载的网关的长连接确定一个低负载的网关;高负载的网关在网关控制器的控制下,通知负载较高的长连接的客户端进行网关迁移,从而在客户端与网关长连接的过程中,将高负载的网关切换到低负载的网关,实现网关切换,进而达到负载均衡。

其中,服务控制器用于管理服务端层的各服务端。

根据一种可行的实现方式,服务控制器用于为客户端分配服务端。举例来说,服务控制器会基于客户端的分配服务端的请求,为其分配服务端,并将该服务端的地址发送到该客户端,该客户端基于该服务端的地址,通过网关层中的网关建立和该服务端的连接。

根据一种可行的实现方式,服务控制器用于接收网关层发送的消息,并将网关层发送的消息转发到服务端层,由服务端层转发给客户端层。这里,网关层发送的消息为控制面消息。如图1所示,网关层的消息通过网络6发送到服务控制器,服务控制器通过网络4将网关层的消息发送到服务端层,服务端层通过网络5将网关层的消息发送到客户端层。

需要指出,网关控制器、服务控制器可以为电子设备组成的计算机集群。网关可以为单个网关,也可以为网关组成的集群。

接下来,结合上述客户端层、服务端层、网关层、网关控制器、服务控制器各自的功能,详细描述网关切换系统如何通过网关(为了便于描述和区别,称为目标网关)实现客户端(为了便于描述和区别,称为目标客户端)和服务端(为了便于描述和区别,称为目标服务端)的长连接。

1)目标客户端向服务控制器请求分配服务端,基于服务控制器发送的目标服务端的地址,生成连接请求(为了便于描述和区别,将其称为客户端连接请求)。

在实际应用中,当首次启动目标客户端时,向服务控制器请求分配服务端,此时,服务控制端会分配一个服务端(即目标服务端),并将该目标服务端的地址发送到目标客户端。

如图1所示,目标客户端可以通过网络7向服务控制器请求分配服务端。

2)目标客户端将客户端连接请求发送到网关控制器。

由于目标客户端和网关层中的网关还没有建立长连接。如图1所示,目标客户端可以通过网络8将客户端连接请求发送到网关控制器。

3)网关控制器会基于网关层中各个网关各自的负载情况,为目标客户端分配一个网关(即目标网关),发送目标网关的地址至目标客户端。

由于目标客户端和目标服务器端还没有建立连接。如图1所示,网关控制器可以通过网络8将目标网关的地址发送到目标客户端。

4)目标客户端基于目标网关的地址,生成网关连接请求(为了便于描述和区别,将其称为客户端连接请求)。

这里,网关连接请求包括目标服务端的地址。

如图1所示,目标客户端可以通过网络1将客户端连接请求发送到目标网关。

5)目标网关基于客户端连接请求,建立和目标客户端的长连接;并基于客户端连接请求,生成目标服务端的连接通知指令,并将该连接通知指令发送到服务控制器,由服务控制器将连接通知发送到目标服务端。

这里,目标服务端的连接通知指令作为控制面信息,发送到服务控制器,由服务控制器转发至目标服务端。如图1所示,目标网关可以通过网络6将目标服务端的连接通知指令发送到服务控制器,服务控制器通过网络4将其转发到目标服务端。

6)目标服务端基于连接通知指令,向目标网关发送网关连接请求(为了便于描述和区别,称为服务端连接请求)。

7)目标网关基于服务端连接请求,建立和目标服务端的长连接;在建立与目标客户端和目标服务端的长连接后,生成连接成功消息,并通知目标客户端和目标服务端。

8)目标客户端通过目标网关与目标服务端进行通信验证,在验证通过后,将目标网关的地址记录在网关列表中,并通过目标网关进行业务面消息的发送和接收。

如图1所示,目标网关可以通过网络1、目标网关、网络2进行通信验证。

在一个例子中,通信验证为心跳验证,具体过程如下:

目标客户端通过目标网关向目标服务端发送心跳包;目标服务端接收心跳包后生成第一应答信息,并通过目标网关发送至目标客户端;目标客户端接收到第一应答信息后,生成第二应答信息,并通过目标网关发送第二应答信息发送至目标服务端;目标服务端接收到第二应答信息后,通过目标网关向第一客户端发送通信验证通过信息。

后续,若目标客户端中断和目标网关的连接中断后,会查询网关列表,重新建立和目标网关的长连接,继续通过目标网关和目标服务端进行通信。

按照上述方式处理,建立多个目标客户端分别与目标网关的长连接。如图2a所示,假设有6个目标客户端,分别称为目标客户端1、目标客户端2、…、目标客户端6,6个目标客户端与目标网关之间长连接。

值得注意的是,如图2b所示,一个目标服务端与一个目标客户端长连接,可以适用云桌面的场景。如图2c所示,一个目标服务端与多个目标客户端长连接,可以使用云会议的场景。

对应的,目标网关具有多个长连接,这样如果所有目标客户端都进行高压力的场景,例如看直播,则目标网关连接的所有用户体验都会受到影响。

目标网关在建立多个长连接后,会按照预设周期比如,1s,1分钟,1小时,上报负载情况到网关控制器。网关控制器控制目标网关的若干个长连接迁移至负载小于目标网关的其他网关(为了便于描述和区别,称为目的网关)。

示例地,如图2a所示,目标客户端1、目标客户端2、…、目标客户端6分别与目标网关长连接,目标客户端2、目标客户端3和目标客户端5需要进行网关切换,则将目的网关的地址通知到目标客户端2、目标客户端3和目标客户端5,目标客户端2、目标客户端3和目标客户端5进行网关切换,建立与目的网关的长连接。

接下来对本发明实施例提供的网关切换方案进行描述。以上述目标网关具有多个长连接,长连接需要迁移至目的网关为例说明网关切换。

1)网关控制器基于网关层中各个网关上报的负载情况进行长连接的迁移决策,可以确定目标网关的长连接是否需要迁移,在确定目标网关中的长连接需要迁移时,向目标网关发送连接迁移指令,连接迁移指令包括目的网关的地址。这里,连接迁移指令指示目标网关需要进行长连接的迁移。

2)目标网关基于连接迁移指令,确定需要迁移的长连接(为了便于描述和区别,称为目标长连接)和目的网关的地址;对于任意目标长连接,将目的网关的地址,发送至目标长连接对应的目标客户端。

如图2b和图2c所示,目标网关将目的网关的地址发送至服务控制器,由服务控制器将其转发至目标服务端,由目标服务端再将其转发至目标客户端。

应当理解的是,考虑到目的网关的地址并不是客户端和服务端实现业务需要的数据,即不是业务面消息,而是控制面消息,基于安全性要求,目标网关可以将目的网关的地址发送到服务控制器,由服务控制器将目的网关的地址发送到目标服务端,最终由目标服务端将目的网关的地址通知到目标客户端,确保网络安全。

3)目标客户端基于目的网关的地址进行网关迁移,将长连接的网关由目标网关切换至目的网关。

参见上文目标客户端连接到目标网关的过程,连接到目的网关,在通过目的网关与目标服务端的通信验证后,通过目的网关进行业务面消息的发送和接收。

另外,目标客户端会更新网关列表,删除网关列表中的目标网关的相关信息,并记录目的网关的相关信息。后续,若目标客户端中断和目的网关的连接中断后,查询网关列表,重新建立和目的网关的长连接,继续通过目的网关和目标服务端进行通信。

综上,本发明实施例中,在网关建立多个长连接后,通过网关控制器实时监控该网关的负载情况,并基于网关的负载情况控制该网关的长连接迁移到其他的网关,在长连接的过程中实现网关的长连接的迁移,确保负载均衡,从而提高用户体验。

以上即是对本方案中涉及的网关切换系统的介绍。接下来对上述网关切换系统中的各个组成部分进行介绍。

接下来对上述电子设备的结构进行介绍。

图3示出了的一种电子设备的结构示意图。如图3所示,该电子设备300包括:处理器301,存储器302及网络接口303。其中,处理器301,存储器302及网络接口303可通过总线或其他方式连接。本发明实施例中,处理器301是电子设备300的计算核心及控制核心。例如,处理器301可以对接收到的数据进行处理,实现不同的业务需求。存储器303(memory)用于存放程序和数据。例如存放上述客户端的应用程序,或者,上述服务端的应用程序等。存储器303可能包含易失性存储器,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。网络接口303用于收发数据,例如,将处理器301处理后的数据发送至其他的电子设备300,或者,接收其他的电子设备300发送的数据等。

可以理解的是,本发明实施例中的处理器至少包括中央处理单元(centralprocessing unit,CPU),还可以包括其他通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。通用处理器可以是微处理器,也可以是任何常规的处理器。

另外,网关控制器、服务控制器为电子设备组成的计算机集群。这些电子设备的结构参见上述电子设备300,此处不再赘述。网关可以为单个网关,也可以为网关组成的集群,这里,网关的结构可以参考上述电子设备的结构,不再赘述。

以上即是对本方案中涉及的网关切换系统,以及该网关切换系统中各个组成部分的介绍。接下来基于上述图1中描述的网关切换系统,对图4所示的网关切换方案进行详细介绍。

步骤S401.网关控制器基于接收的多个网关各自上报的负载信息,确定多个网关中的高负载网关,并生成高负载网关的连接迁移指令。

在实际应用中,多个网关各自周期性的上报负载信息至网关控制器。其中,负载信息用于描述网关的当前周期的负载情况。负载信息可以包括每个长连接的运行参数(用于指示长连接的当前周期的运行状态)的运行参数值。示例地,运行参数可以为每个长连接各自的时延(round-trip time,RTT)、单位时间的流量、cpu使用率、内存占用率、消息转发时长等。负载信息还可以包括网关自身的运行参数(用于指示网关的当前周期的运行状态)的运行参数值。示例地,运行参数可以为网关的长连接的数目、cpu使用率、内存占用率、单位时间的流量、消息转发时长等信息。其中,RTT是指数据从网络一端比如客户端传到另一端比如服务端所需的时间。长连接的消息转发时长指示了接收到长连接下的业务面消息后处理然后发送这一过程的时长。网关的消息转发时长指示了网关接收到业务面消息后处理然后发送这一过程的时长。需要指出,网关的消息转发时长反映的是网关对业务面消息的整体的处理情况。

其中,连接迁移指令用于指示高负载网关进行部分长连接的迁移。可以包括多个网关中的低负载网关的地址、多个网关中的高负载网关的地址、长连接选取策略。这里,长连接选取策略指示了如何选择需要迁移的长连接。

在实际应用中,网关控制器周期性对网关是否需要进行长连接的迁移进行检测,对于任一周期,基于该网关上报的负载信息和迁移策略,确定该网关是否为高负载网关;若是,可将该网关作为需要进行长连接迁移的高负载网关,并生成高负载网关的连接迁移指令。这里,当前周期可以理解为当前检测的时刻和上次检测的时刻之间的时段,比如,可以为5秒、1分钟、5分钟等。周期过长可能会导致网关切换不及时,周期过短可能会导致网关切换过于频繁,具体可结合实际情况设置周期的长短。

其中,迁移策略指示了高负载网关是否需要进行长连接迁移。具体地,迁移策略可以为当单一迁移度量值满足迁移条件时迁移,也可以为多个迁移度量值中任一迁移度量值满足对应的迁移条件时迁移,还可以为多个迁移度量值同时满足对应的迁移条件时迁移。在实际应用中,多个迁移度量值具有不同的优先级,按照迁移度量值的优先级的高低,依次确定迁移度量值是否满足迁移条件。本发明实施例中,迁移条件可以为迁移度量值大于等于迁移度量阈值。当然,这里的迁移条件仅仅作为示例,具体可以结合实际需求确定。这里,迁移度量值用于反映出网关的运行情况的好坏,可以体现出网关的负载高低,从而度量是否需要迁移网关建立的长连接。因此,在符合迁移策略时,可以认为网关的整体消息转发速度较差、负载较高,会影响用户体验,因此需要迁移高负载网关的长连接。

具体地,网关控制器在当前周期,对于一个网关,基于网关上报的该周期内的负载信息,确定网关在当前周期的迁移度量值,根据迁移度量值和迁移策略,确定该网关是否为高负载网关。

在一个可行的实现方式中,负载信息包括网关自身的运行参数的运行参数值。

在一个例子中,迁移度量值可以为网关的负载值;对应的,迁移度量阈值为负载阈值。其中,负载阈值可以理解为网关的负载值的上限。

其中,负载值用于说明网关的负载。负载值越大说明网关的负载越高。这里,网关的负载可以理解为是对网关的工作量的度量,通常被定义为特定时间间隔内运行队列中的平均线程数,主要由cpu使用率、内存占用率等决定。

具体地,网关控制器在当前周期,对于一个网关,基于网关上报的该周期内的负载信息,确定网关在当前周期的负载值,当负载值大于等于负载阈值时,确定该网关为高负载网关,否则确定该网关为低负载网关。

示例地,负载值可以由单个运行指标的值或多个运行指标加权平均得到的值。其中,单个运行指标可以为cpu使用率或内存使用率,多个运行指标可以为cpu使用率、内存使用率等,本发明实施例并不做具体限定,具体可结合实际情况确定。

需要说明的是,负载信息可能包括当前周期的多个时刻各自的负载信息,此时,当前周期的负载值为多个时刻的负载值的均值。

在一个例子中,迁移度量值可以为网关在当前周期内的长连接数目;对应的,迁移度量阈值指示了网关在一个周期内可以接受的长连接的数目。这里,长连接数目越多说明网关需要处理的业务面消息越多,负载越高,因此可以作为迁移度量值。

示例地,长连接数目可以为单核长连接总数sum1。在一种可能的情况,sum1=(连接类型1的当前长连接数目+连接类型2的当前长连接数目)/cpu核数。这里,连接类型1可以为网页连接,比如通过浏览器访问客户端,此时,连接类型为网页连接;连接类型2可以为本地连接,比如,在手机上安装客户端,此时连接类型为本地连接。

在一个例子中,迁移度量值可以为网关在当前周期内的带宽占比,比如单位时间的流量和网关的带宽的比值;对应的,迁移度量阈值为带宽占比,指示了网关可以接受的带宽占比的上限。这里,带宽占比越多说明网关需要处理转发的业务面消息越多,负载越高,因此可以作为迁移度量值。

在一个例子中,迁移度量值可以为网关在该周期内的单位时间的消息转发时长;对应的,迁移度量阈值为时长阈值,指示了网关可以接受的单位时间的消息转发时长的上限。这里,消息转发时长越长说明网关处理转发的业务面消息的时间越长,可以反映出网关的工作量较多,负载较高,因此可以作为迁移度量值。需要说明的是,负载信息包括当前周期内的多个单位时间各自的消息转发时长,此时,当前周期的单位时间的消息转发时长为多个单位时间各自的消息转发时长的均值。

在一个可行的实现方式中,当负载信息包括每个长连接的负载参数,比如,每个长连接各自的RTT。

在一个例子中,迁移度量值可以为网关在当前周期内的超时长连接数目,指示了大于时延阈值的长连接数目。对应的,迁移度量阈值指示了网关可以接受的一个周期内的超时长连接数目的上限。这里,超时长连接数目说明网关处理转发的业务面消息的时间越长,可以反映出网关的工作量较多,负载较高,因此可以作为迁移度量值。

在一个例子中,迁移度量值可以为网关在当前周期内的超时长连接比例值,指示了大于时延阈值的长连接数目和所有长连接的数目的比值。对应的,迁移度量阈值指示了网关可以接受的超时长连接比例值的上限。这里,超时长连接比例值越高说明网关处理转发的业务面消息的时间越长,可以反映出网关的工作量较多,负载较高,因此可以作为迁移度量值。

示例地,当前周期为5分钟,当5分钟内的RTT超过Kms的长连接的数目和长连接的总数目的比例大于等于迁移度量阈值30%时,进行迁移。

根据一种可行的实现方式,长连接选取策略可以为按连接迁移比例进行迁移。连接迁移比例指示了选择出的待迁移的长连接的数目和长连接的总数目的比值。

在一个例子中,预先设置若干个迁移度量值各自的多个区间以及这些区间各自的迁移比例。则具体实施时,对于任一迁移度量值,可选地,从多个区间中确定当前周期的迁移度量值所在区间,将该区间对应的迁移比例作为长连接选取策略中的连接迁移比例。可选地,连接迁移比例=(当前周期的迁移度量值-迁移度量阈值)/迁移度量阈值。另外,当迁移度量值有多个时,连接迁移比例综合考虑多个迁移度量值各自的连接迁移比例,比如可以为均值,也可以为不同迁移度量值设置不同的权重,加权平均。

根据一种可行的实现方式,长连接选取策略包括迁移选取参数的选取参数值高于选取参数的选取参数阈值的长连接。其中,选取参数指示了选择长连接的指标。比如,可以为长连接的时延,长连接的消息处理时长或长连接的负载。其中,长连接的负载值的确定方法可以参考上述确定网关的负载值的方法。

需要说明的是,本发明实施例提供的迁移策略中的迁移度量值,可以与长连接选取策略中的选取参数进行任意组合,本发明实施例对此不做具体限定,具体可结合实际需求对迁移度量值和选取参数进行组合。

步骤S402.网关控制器向高负载网关发送连接迁移指令。

步骤S403.高负载网关基于连接迁移指令确定长连接选取策略和低负载网关的地址;基于长连接选取策略,确定需要迁移的若干个目标长连接,生成任一目标长连接的网关切换指令。

在实际应用中,高负载网关在接收到连接迁移指令后,解析该指令,得到长连接选取策略和低负载网关的地址;然后,高负载网关基于所有长连接各自的负载情况结合长连接选取策略,确定若干个目标长连接,每个目标长连接的处理相同,本发明实施例仅以一个目标长连接为例进行说明。

根据一种可行的实现方式,长连接选取策略可以为按连接迁移比例进行迁移。

可选地,长连接选取策略还包括选取参数。这里,高负载网关的目标长连接的数目和高负载网关的长连接的总数的比值为连接迁移比例。

具体地,根据选取参数值大小,按照从大到小的顺序,对多个长连接进行排序,得到排序序列,从排序序列中选择出适配迁移比例的若干个长连接作为目标长连接。

示例地,选取参数为长连接的负载。在具体实现时,基于长连接的运行参数的运行参数值,确定长连接的负载值;按照负载值的大小,对长连接进行排序,将负载值最高的适配连接迁移比例的若干个长连接分别作为目标长连接。

举例来说,假设迁移比例为30%,高负载网关的长连接的数量为100,则需要迁移的长连接的数目为30个,具体地,按照长连接的负载值的从大到小的顺序,对长连接进行排序,将靠前的30个长连接分别作为目标长连接。

另外,当选取参数有多个时,在一个例子中,长连接选取策略包括迁移多个选取参数各自基于迁移连接比例选择出的长连接。在另一个例子中,长连接选取策略包括迁移多个选取参数各自基于迁移连接比例选择出的相同的长连接。

举例来说,假设有3个选取参数,分别称为X1、X2、X3,10个长连接分别成为LC1、LC2、…、LC10,X1选择出的5个长连接分别为LC1、LC2、LC3、LC4、LC5,X2选择出的6个长连接分别为LC1、LC2、LC3、LC4、LC5、LC6,X3选择出的4个长连接分别为LC1、LC2、LC3、LC4,则目标长连接可以有4个,分别为LC1、LC2、LC3、LC4,也可以有6个,分别为LC1、LC2、LC3、LC4、LC5、LC6。

根据一种可行的实现方式,长连接选取策略包括迁移选取参数的选取参数值高于选取参数的选取参数阈值的长连接。对应的,长连接选取策略包括选取参数和选取参数阈值。

示例地,选取参数为长连接的时延;则高负载网关确定所有长连接各自的当前时延值,将大于等于时延阈值的长连接作为目标长连接。需要说明的是,时延较高,一方面可能是网关的负载较高、消息转发速度较低,另一方面可能是长连接的链路故障;因此,将时延较高的长连接迁移到其他网关,不仅可以降低网关的负载,提高网关的消息转发速度,还可能改善长连接的链路故障。

另外,当选取参数有多个时,在一个例子中,长连接选取策略包括迁移多个选取参数各自基于参数阈值选择出的长连接。在另一个例子中,长连接选取策略包括迁移多个选取参数各自基于参数阈值选择出的相同的长连接。

步骤S404、高负载网关向服务控制器发送网关切换指令,其中网关切换指令包括低负载网关的地址。

其中,网关切换指令包括低负载网关的地址,用于通知客户端将长连接的网关切换到低负载网关。

进一步地,假设一个客户端连接一个服务端,则知道了服务端的地址也就知道了客户端的地址;因此,网关切换指令还包括服务端的地址即可。假设多个客户端连接一个服务端,若服务端连接的所有客户端长连接的网关均需要切换至第二网关,则网关切换指令包括服务端的地址即可;若服务端连接的部分客户端长连接的网关需要切换至第二网关,则知道了服务端的地址后无法知道客户端的地址;因此,网关切换指令还包括服务端的地址和客户端的地址,从而通过服务控制器、服务端,将网关控制指令转发到客户端。

考虑到网关切换指令并不是客户端和服务端实现业务需要的数据,为控制面消息,基于安全性要求,高负载网关可以将网关切换指令发送到服务控制器,由服务控制器将该网关切换指令发送到服务端,最终由服务端向客户端通知网关切换指令中的低负载网关的地址。需要说明的是,控制面消息与业务面消息消息分离,指令走控制面,避免侵入修改网关业务面转发逻辑。

步骤S405.服务控制器向服务端发送网关切换指令。

步骤S406.服务端向客户端通知低负载网关的地址。

在实际应用中,服务端会解析网关切换指令,得到低负载网关的地址。

步骤S407.客户端向低负载网关发送第一连接请求。

步骤S408.低负载网关基于第一连接请求,建立和客户端的长连接。

步骤S409.低负载网关向服务控制器发送连接通知指令。

需要说明的是,第一连接请求中包括服务端的地址,因此,低负载网关会解析第一连接请求,拿到客户端的地址和服务端的地址,基于客户端的地址建立和客户端的长连接,基于服务端的地址生成连接通知指令,其中,连接通知指令包括服务端的地址和低负载网关的地址,用于通知服务端建立和低负载网关的长连接。

步骤S410.服务控制器向服务端发送连接通知指令。

步骤S411.服务端向低负载网关发送第二连接请求。

步骤S412.低负载网关基于第二连接请求,建立和服务端的长连接。

步骤S413.低负载网关向客户端发送连接成功信息。

步骤S414.客户端通过低负载网关与服务端进行通信验证,在通信验证通过后中断与高负载网关的长连接。

另外,客户端会更新网关列表,删除网关列表中的高负载网关的相关信息,并记录低负载网关的相关信息。后续,若客户端中断和低负载网关的连接后,下一次使用客户端时,查询网关列表,继续通过低负载网关和服务端进行通信。

通信验证为心跳验证,详细内容参见上文,不再赘述。

在一个例子中,客户端中断与高负载网关的连接具体过程如下:

客户端在通信验证通过后,生成并向高负载网关发送连接中断请求;高负载网关接收到连接中断请求后中断与客户端的连接,生成并向客户端发送网关中断信息;客户端在接收到网关中断信息后,中断和高负载网关的连接。

另外,客户端中断和高负载网关的连接后会拆除高负载网关。

需要说明的是,高负载网关切换到低负载网关的过程与业务面隔离。因此,客户端在未切换至低负载网关时,可以继续接收高负载网关发送的业务面消息,在切换至低负载网关后,将业务面消息发送至低负载网关。比如,客户端为虚拟机,用户通过客户端观看电视剧,在观看视频的过程中,客户端不需要时刻向服务端发送视频请求,在未与高负载网关中断长连接时,接收高负载网关转发服务端发送的视频数据并缓存,在网关切换过程中,由于未与高负载网关中断长连接,因此还是可以接收高负载网关转发的视频数据,当切换至低负载网关后,即客户端和服务端均连接至低负载网关,且可正常通信后,接收低负载网关转发的服务端发送的视频数据。

步骤S415.客户端更新网关列表,在与低负载网关中断连接后,基于更新后的网关列表,重新与低负载网关建立长连接。

综上,在实现负载均衡的过程,第一方面,网关控制器需要生成连接迁移指令,从而使得网关基于连接迁移指令实现长连接迁移;第二方面,网关需要生成网关切换指令,从而使得客户端基于网关切换指令实现网关切换。

接下来,基于上文所描述的网关切换方案,对本发明实施例提供的第一种网关切换方法进行介绍。可以理解的是,该方法是上文所描述的网关切换方案的另一种表达方式,两者是相结合的。该方法是基于上文所描述的网关切换方案提出,该方法中的部分或全部内容可以参见上文对网关切换方案的描述。

请参阅图5,图5是本发明实施例提供的第一种网关切换方法的流程示意图。可以理解,该方法可以通过上述网关切换系统执行。如图5所示,该网关切换方法包括:

步骤501、网关控制器获取第一网关的负载参数,第一网关与多个客户端之间建立有多个长连接。

在实际应用中,第一网关为客户端请求与网关建立长连接时,网关控制器所分配的网关。

这里,第一网关可以对应上述目标网关,或者,对应图4示出的高负载网关。第一网关与多个客户端之间建立的长连接,用于实现业务面消息的转发。

另外,值得注意的是,客户端通过第一网关与服务端进行业务面消息的通信。因此,第一网关还与多个服务端之间建立长连接,实现多个服务端和多个客户端之间的业务面消息的转发。在一些可能的场景,比如,云桌面的场景,一个服务端通过第一网关连接一个客户端;在另一些可能的场景中,比如,云会议的场景,一个服务端通过第一网关连接多个客户端。

根据一种可行的实现方式,负载参数包括多个长连接的负载参数,也即上述每个长连接的运行参数,详细内容参见上文对步骤S401的描述,不再赘述。

进一步地,负载参数还包括网关自身的参数,也即上述网关自身的运行参数,详细内容参见上文对步骤S401的描述,不再赘述。

在实际应用中,第一网关周期性的上传负载参数的负荷参数值至网关控制器。

在实际应用中,客户端用于实现云服务,比如可以为云桌面客户端,再比如可以为云会议客户端。对应的,网关控制器对应一种或多种云服务。

步骤502、网关控制器根据第一网关的负载参数,向第一网关发送连接迁移指令,迁移指令包括第二网关的地址,连接迁移指令指示对至少一个长连接进行切换,多个长连接包括至少一个长连接。

在实际应用中,当第一网关的整体消息转发速度较差、负载较高时,会影响用户体验,此时,向第一网关发送连接迁移指令,使得第一网关将长连接迁移到第二网关,从而降低第一网关的负载,确保第一网关中未迁移的长连接的消息转发速度,确保用户体验。

根据一种可行的实现方式,网关控制器基于迁移策略确定是否向第一网关发送连接迁移指令。其中,迁移策略指示了第一网关是否需要进行长连接迁移。迁移策略包括若干个迁移度量值和每个迁移度量值各自对应的迁移条件。其中,迁移度量值用于反映出网关的运行情况的好坏,从而度量是否需要迁移自身建立的长连接。

在实际应用中,网关控制器基于第一网关的负载参数,确定第一网关的迁移度量值,基于迁移度量值和迁移策略,确定是否向第一网关发送连接迁移指令。

在实际应用中,当符合迁移策略时,认为网关的整体消息转发速度较差、负载较高时,会影响用户体验,此时,需要向第一网关发送连接迁移指令。

在一个可行的实现方式中,第一网关的负载参数包括第一网关自身的参数。

在一个例子中,多个迁移度量值可以为网关的负载值、长连接数目、带宽占比、单位时间的消息转发时长、超时长连接数目或超时长连接比例值;对应的,迁移条件为迁移度量值大于迁移度量阈值。

需要说明的是,迁移度量值为负载值时,迁移度量阈值为负载阈值。在一些可能的实现方式中,迁移策略为负载值大于负载阈值时迁移,则网关控制器基于第一网关的负载参数,确定第一网关的负载值,当负载值大于负载阈值时,向第一网关发送连接迁移指令。

在一个可行的实现方式中,第一网关的负载参数包括多个长连接的负载参数。

在一个例子中,迁移度量值可以为网关的超时长连接数目或超时长连接比例值;对应的,迁移条件为迁移度量值大于迁移度量阈值。

在一些可能的实现方式中,迁移策略为超时长连接数目或超时长连接比例值大于负载阈值时迁移;具体地,网关控制器基于第一网关的负载参数,在确定多个长连接中至少一个长连接的时延大于时延阈值时,向第一网关发送连接迁移指令。

迁移策略的详细内容参见上文对步骤S401的描述,不再赘述。

其中,连接迁移指令指示第一网关迁移部分或全部长连接至第二网关。在具体实现时,至少包括第二网关的地址、第一网关的地址。这里,第一网关地址用于说明连接迁移指令的接收对象的目的地,第二网关的地址用于说明长连接需要迁移到的网关的地址。

进一步地,连接迁移指令还包括长连接选取策略。其中,长连接选取策略用于指示从多个长连接中选择需要迁移的长连接的方案。

根据一种可行的实现方式,长连接选取策略可以为迁移选取参数的选取参数值大于选取参数的选取参数阈值的长连接。

根据一种可行的实现方式,长连接选取策略可以为按连接迁移比例迁移长连接。

这里,长连接选取策略还包括选取参数。具体地,根据选取参数值的大小,对多个长连接进行排序,从排序序列中选择出适配迁移比例的若干个长连接作为待迁移的长连接。

其中,上述选取参数可以为长连接的时延、长连接的单位时间的消息处理时长或者长连接的负载。另外,本发明实施例并不意图限制选取参数的内核和数目,当选取参数有多个时,可以迁移基于每个选取参数所选择的长连接,也可以迁移基于这些选取参数所选择的相同的长连接。

详细内容参见上文对步骤S403的描述,不再赘述。

需要说明的是,判断迁移策略中的迁移度量值和长连接选取策略中的选取参数可以进行任意组合,本发明实施例对此不做具体限定,具体可结合实际需求对迁移策略中的迁移度量值和长连接选取策略中的选取参数进行任意设置。

步骤503、第一网关将第二网关的地址发送至至少一个长连接对应的客户端,以使得至少一个长连接对应的客户端与第二网关建立长连接。

本方案中,考虑到第一网关和客户端的长连接用于实现业务面消息的转发,而第二网关的地址不是业务面消息,而是控制面消息,若控制面消息和业务面消息采用相同的长连接建立的链路,则可能会影响业务面消息的转发逻辑的安全性,因此,本方案中提出控制面消息和业务面消息分离,从而避免侵入修改网关业务面转发逻辑。

具体地,第一网关将第二网关的地址发送到服务控制器,服务控制与多个服务端相连,多个服务端通过网关和多个客户端进行通信,从而将第二网关的地址通过服务控制器、服务端转发到客户端,实现业务面消息和控制面消息的分离。

在实际应用中,第一网关会基于第二网关的地址生成网关切换指令,将网关切换指令转发至服务控制器,由服务控制器将网关切换指令转发到服务端,由服务端解析网关切换指令,向连接的客户端通知第二网关的地址。这里,若一个客户端连接一个服务端,则知道了服务端的地址也就知道了客户端的地址;因此,网关切换指令包括服务端的地址即可。若多个客户端连接一个服务端,若服务端连接的所有客户端长连接的网关均需要切换至第二网关,则网关切换指令包括服务端的地址即可;若服务端连接的部分客户端的长连接的网关需要切换至第二网关,则知道了服务端的地址后无法知道需要进行网关切换的客户端的地址;因此,网关切换指令需要包括服务端的地址和客户端的地址,从而通过服务控制器、服务端,向客户端通知第二网关的地址。

在客户端与第二网关建立长连接,并且通过第二网关与服务端成功通信后,即上述通信验证通过,第一网关需要拆除该客户端的长连接,不再转发已经迁移长连接对应的客户端的业务面消息。第一网关对每个客户端的长连接拆除过程相同,下面以一个客户端为例进行说明。为了便于描述和区别,将该客户端称为目标客户端。

具体地,第一网关接收目标客户端发送的连接中断请求;并根据连接中端请求中断与目标客户端的长连接,后续,目标客户端通过第二网关转发业务面消息。

由此,本方案中,在网关建立多个长连接后,通过网关控制器实时监控该网关的负载情况,并基于网关的负载情况控制该网关的长连接迁移到其他的网关,在长连接的过程中实现网关的长连接的迁移,确保负载均衡,从而提高用户体验。

接下来,基于上文所描述的网关切换方案,对本发明实施例提供的第二种网关切换方法进行介绍。可以理解的是,该方法是上文所描述的网关切换方案的另一种表达方式,两者是相结合的。该方法是基于上文所描述的网关切换方案提出,该方法中的部分或全部内容可以参见上文对网关切换方案的描述。

请参阅图6,图6是本发明实施例提供的第二种网关切换方法的流程示意图。可以理解,该方法可以通过上述网关控制器执行。如图6所示,该网关切换方法包括:

步骤601、获取第一网关的负载参数,第一网关与多个客户端之间建立有多个长连接。

详细内容,参见上文对步骤501的描述,不再赘述。

步骤602、根据第一网关的负载参数,向第一网关发送连接迁移指令,以使得第一网关将第二网关地址发送至至少一个长连接对应的客户端,迁移指令包括第二网关的地址,多个长连接包括至少一个长连接。

详细内容,参见上文对步骤502的描述,不再赘述。

由此,本方案中,在网关建立多个长连接后,通过网关控制器实时监控该网关的负载情况,并基于网关的负载情况控制该网关的长连接迁移到其他的网关,在长连接的过程中实现网关的长连接的迁移,确保负载均衡,从而提高用户体验。

接下来,基于上文所描述的网关切换方案,对本发明实施例提供的第三种网关切换方法进行介绍。可以理解的是,该方法是上文所描述的网关切换方案的另一种表达方式,两者是相结合的。该方法是基于上文所描述的网关切换方案提出,该方法中的部分或全部内容可以参见上文对网关切换方案的描述。

请参阅图7,图7是本发明实施例提供的第三种网关切换方法的流程示意图。可以理解,该方法可以通过上述网关控制器执行。如图7所示,该网关切换方法包括:

步骤701、接收网关控制器发送的连接迁移指令,连接迁移指令包括第二网关的地址。

网关控制器生成连接迁移指令的相关内容参见上述步骤501和步骤502。

步骤702、将第二网关的地址发送至至少一个长连接对应的客户端,以使得至少一个客户端与第二网关建立长连接,第一网关与多个客户端建立有多个长连接,多个长连接包括至少一个长连接。

详细内容,参见上文对步骤503的描述,不再赘述。

由此,本方案中,在网关建立多个长连接后,通过网关控制器实时监控该网关的负载情况,并基于网关的负载情况控制该网关的长连接迁移到其他的网关,在长连接的过程中实现网关的长连接的迁移,确保负载均衡,从而提高用户体验。

接下来,基于上文所描述的网关切换方案,对本发明实施例提供的一种网关控制器的结构进行介绍。

图8为本发明实施例提供的一种网关控制器的结构示例图。如图8所述,网关控制器包括:

通信模块801,用于获取第一网关的负载参数,所述第一网关与多个客户端之间建立有多个长连接;

处理模块802,用于根据所述第一网关的负载参数,向所述第一网关发送连接迁移指令,以使得所述第一网关将第二网关地址发送至至少一个长连接对应的客户端,所述迁移指令包括所述第二网关的地址,所述多个长连接包括所述至少一个长连接。

在一种可能的实现方式中,所述第一网关的负载参数包括所述第一网关自身的参数。

在该实现方式下,在一个例子中,所述通信模块801,用于根据所述第一网关的负载参数,确定所述第一网关的负载值,当所述负载值高于负载阈值,向所述第一网关发送连接迁移指令。

在一种可能的实现方式中,所述第一网关的负载参数包括所述多个长连接的负载参数。

在该实现方式下,在一个例子中,所述多个长连接的负载参数包括时延;所述处理模块802,用于确定所述多个长连接中所述至少一个长连接的时延值大于时延阈值,向所述第一网关发送连接迁移指令。

在一种可能的实现方式中,所述客户端为云桌面客户端。

在一种可能的实现方式中,所述连接迁移指令还包括长连接选取策略,所述长连接选取策略指示了从所述多个长连接中选择所述至少一个长连接的方案,以使所述第一网关根据所述长连接选取策略,从所述多个长连接中选取所述至少一个长连接。

通信模块801和处理模块802所实现的具体功能参见上文对步骤501和步骤502的描述,不再赘述。

接下来,基于上文所描述的网关切换方案,对本发明实施例提供的一种网关的结构进行介绍。

图9为本发明实施例提供的一种网关控制器的结构示例图。如图9所述,网关包括:

通信模块901,用于接收网关控制器发送的连接迁移指令,所述连接迁移指令包括第二网关的地址;

处理模块902,用于将所述第二网关的地址发送至至少一个长连接对应的客户端,以使得所述至少一个客户端与所述第二网关建立长连接,所述第一网关与多个客户端建立有多个长连接,所述多个长连接包括所述至少一个长连接。

在一种可能的实现方式中,所述通信模块902用于将所述第二网关的地址发送至服务控制器,所述服务控制器与多个服务端相连,所述多个服务端通过网络与所述多个客户端进行通信。

在一种可能的实现方式中,所述至少一个客户端中包括目标客户端,所述通信模块,还用于接收所述目标客户端发送的连接中断请求;

所述处理模块902,还用于根据所述连接中断请求中断与所述目标客户端的长连接。

在一种可能的实现方式中,所述连接迁移指令还包括长连接选取策略,所述长连接选取策略指示了从所述多个长连接中选择所述至少一个长连接的方案;

所述处理模块902,还用于根据所述长连接选取策略,从所述多个长连接中选取所述至少一个长连接。

通信模块901和处理模块902所实现的具体功能参见上文对步骤501、步骤502和步骤503的描述,不再赘述。

接下来,基于上文所描述的网关切换方案,对本发明实施例提供的一种网关切换系统的结构进行介绍。

图10为本发明实施例提供的一种网关切换系统的结构示例图。如图10所述,网关切换系统包括:

网关控制器1001,用于获取所述第一网关的负载参数,所述第一网关与多个客户端之间建立有多个长连接;根据所述第一网关的负载参数,向所述第一网关发送连接迁移指令,所述迁移指令包括所述第二网关的地址,所述连接迁移指令指示对至少一个长连接进行切换,所述多个长连接包括所述至少一个长连接;

第一网关1002,用于将所述第二网关的地址发送至所述至少一个长连接对应的客户端,以使得所述至少一个长连接对应的客户端与所述第二网关建立长连接。

具体地,网关控制器1001具体包括上述通信模块801和处理模块802,详细内容参见上文对通信模块801和处理模块802的描述,不再赘述。

具体地,第一网关1002具体包括上述通信模块901和处理模块902,详细内容参见上文对通信模块901和处理模块902的描述,不再赘述。

可以理解的是,本发明的实施例中的处理器可以是中央处理单元(centralprocessing unit,CPU),还可以是其他通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。通用处理器可以是微处理器,也可以是任何常规的处理器。

本发明的实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read-only memory,ROM)、可编程只读存储器(programmable rom,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。

可以理解的是,在本发明的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本发明的实施例的范围。

相关技术
  • 双主控板热备切换方法、装置、接入网关及安全网络系统
  • 分流网关链路切换方法、装置、计算机存储介质及设备
  • 用于增强媒体网关与媒体网关控制器之间的切换的方法
  • 用于增强媒体网关与媒体网关控制器之间的切换的方法
技术分类

06120116506195