CN103067292B - 一种基于WebSocket传输的负载均衡方法和装置 - Google Patents

一种基于WebSocket传输的负载均衡方法和装置 Download PDF

Info

Publication number
CN103067292B
CN103067292B CN201210575848.8A CN201210575848A CN103067292B CN 103067292 B CN103067292 B CN 103067292B CN 201210575848 A CN201210575848 A CN 201210575848A CN 103067292 B CN103067292 B CN 103067292B
Authority
CN
China
Prior art keywords
server
address
client
websocket
load balancing
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
CN201210575848.8A
Other languages
English (en)
Other versions
CN103067292A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201210575848.8A priority Critical patent/CN103067292B/zh
Publication of CN103067292A publication Critical patent/CN103067292A/zh
Application granted granted Critical
Publication of CN103067292B publication Critical patent/CN103067292B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例提供一种基于WebSocket传输的负载均衡方法和装置,以节省网络资源并提高分发效率。所述方法包括:接收客户端经过短链接发起的第一WebSocket请求;根据负载均衡策略,使所述客户端重定向到服务器集群中的服务器,以使所述客户端发起第二WebSocket请求以和所述重定向到的服务器建立链接。本发明实施例提供的方法没有一直占用与负载均衡器之间的带宽,节省了网络资源;另一方面,由于在客户端和服务器建立链接后,客户端与服务器之间数据的交互通过客户端和服务器之间建立的链接进行,因此,与现有技术相比,本发明实施例提供的方法可以保证负载均衡装置自身性能不受影响,从而提高负载均衡的分发能力。

Description

一种基于WebSocket传输的负载均衡方法和装置
技术领域
本发明涉及通信领域,尤其涉及一种基于WebSocket传输的负载均衡方法和装置。
背景技术
随着超文本标记语言(Hypertext Markup Language v5,HTML5)的普及,WebSocket技术被广泛地应用。WebSocket包括具有报文头(head)较小(仅2个字节)、客户端和服务端仅需一次握手便能建立链路而相互发送数据以及实时、全双工等优点。在对规模、分发能力,以及可用性等有较大、较高要求的网络通信系统中,逐渐趋向于使用WebSocket作为其传输承载。而作为系统重要组成之一的负载均衡(Load Balance)装置,其分发效率同样很大程度上决定了整个系统的性能。所谓负载均衡,其提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。常用的负载均衡模式移植到这种网络通信系统中会因为外部链接的增多,从而引发许多问题,例如,系统性能不正常地下降、网络资源耗费严重或者在提高了分发效率的同时却带来了安全隐患。
因此,在这种大规模、高分发能力、高可用性以及使用WebSocket作为传输的网络通信系统中,如何提升负载均衡的分发能力,同时避免造成以上负面影响,是当前业界普遍关注的热点之一。
现有技术提供的一种在使用WebSocket作为传输的网络通信系统中提升负载均衡的分发能力并避免负面影响的方法是:客户端(Client)向负载均衡装置发起WebSocket请求;负载均衡装置收到请求后,根据负载均衡策略,从服务器(Server)集群中选出一个应用服务器(Application Server),向该应用服务器发起WebSocket链接,将客户端的请求转发给它;应用服务器将响应返回给负载均衡装置;负载均衡装置再将响应转回给发起WebSocket请求的客户端。此后,客户端和应用服务器之间的数据交互都经过负载均衡装置转发。
从上述现有技术提供的方法可知,由于WebSocket链接在客户端发起请求至负载均衡装置将该请求的响应回转至该客户端的过程中一直没有断开,即该链接一直占用负载均衡装置的资源,客户端和应用服务器之间的数据交互都需要经过负载均衡装置转发。因此,随着WebSocket链接的增多,将导致负载均衡装置自身性能的持续下降。
发明内容
本发明实施例提供一种基于WebSocket传输的负载均衡方法和装置,以节省网络资源并提高分发效率。
本发明实施例提供一种基于WebSocket传输的负载均衡方法,所述方法包括:
接收客户端经过短链接发起的第一WebSocket请求;
根据负载均衡策略,使所述客户端重定向到服务器集群中的服务器,以使所述客户端发起第二WebSocket请求以和所述重定向到的服务器建立链接。
本发明实施例提供一种基于WebSocket传输的负载均衡装置,所述装置包括:
接收模块,用于接收客户端经过短链接发起的第一WebSocket请求;
重定向模块,用于根据负载均衡策略,使所述客户端重定向到服务器集群中的服务器,以使所述客户端发起第二WebSocket请求以和所述重定向到的服务器建立链接。
从上述本发明实施例可知,由于第一WebSocket请求是通过短链接传输,在将第一WebSocket请求重定向到服务器集群中的服务器后该短链接即断开,因此,与现有技术相比,本发明实施例提供的方法没有一直占用与负载均衡器之间的带宽,节省了网络资源;另一方面,由于在客户端和服务器建立链接后,客户端与服务器之间数据的交互通过客户端和服务器之间建立的链接进行,因此,与现有技术相比,本发明实施例提供的方法可以保证负载均衡装置自身性能不受影响,从而提高负载均衡的分发能力。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对现有技术或实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,还可以如这些附图获得其他的附图。
图1是本发明实施例提供的基于WebSocket传输的负载均衡方法流程示意图;
图2是本发明实施例提供的基于WebSocket传输的负载均衡装置结构示意图;
图3是本发明另一实施例提供的基于WebSocket传输的负载均衡装置结构示意图;
图4是本发明另一实施例提供的基于WebSocket传输的负载均衡装置结构示意图;
图5是本发明另一实施例提供的基于WebSocket传输的负载均衡装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员所获得的所有其他实施例,都属于本发明保护的范围。
请参阅附图1,是本发明实施例提供的基于WebSocket传输的负载均衡方法流程示意图,其执行主体可以是客户端与服务器集群之间的负载均衡装置,主要包括步骤S101和步骤S102:
S101,接收客户端经过短链接发起的第一WebSocket请求。
为了描述方便,将客户端经过短链接发起的WebSocket请求称为第一WebSocket请求。在本发明实施例中,短链接例如可以是超文本传送协议(HyperText Transfer Protocol,HTTP)链接,客户端经过短链接发起的WebSocket请求可以是一种握手请求,即表示客户端要与负载均衡装置建立链接。
S102,根据负载均衡策略,使所述客户端重定向到服务器集群中的服务器,以使所述客户端发起第二WebSocket请求以和所述重定向到的服务器建立链接。
负载均衡装置根据负载均衡策略,使经过短链接发起第一WebSocket请求的客户端重定向到服务器集群中的服务器后,即断开与该客户端的短链接。客户端根据返回的地址,发起第二WebSocket请求以和所述重定向到的服务器建立链接。在本发明一个实施例中,根据负载均衡策略,使客户端重定向到服务器集群中的服务器,以使所述客户端发起第二WebSocket请求以和所述重定向到的服务器建立链接可以是:根据负载均衡策略,从服务器集群中选定服务器,然后,再将选定的服务器的地址发送至所述客户端,以使客户端根据所述选定的服务器的地址向所述选定的服务器发起第二WebSocket请求,以和所述选定的服务器建立链接。
如前所述,由于负载均衡装置根据负载均衡策略,使经过短链接发起第一WebSocket请求的客户端重定向到服务器集群中的服务器后,即断开了与该客户端的短链接。因此,客户端根据选定的服务器的地址向所述选定的服务器发起第二WebSocket请求,是将该第二WebSocket请求直接向选定的服务器发送,而不是经过负载均衡装置进行转发;客户端通过所述第二WebSocket请求建立与选定的服务器的链接后,所有与所述选定的服务器之间的交互也是直接通过该客户端与服务器之间的链接直接进行,不再经过负载均衡装置转发。
为了解决外部客户端访问内网的服务器集群导致的安全隐患,在本发明另一个实施例中提供了网络地址转换(Network Address Translation,NAT)和重定向(Redirect)机制。所谓NAT,由NAT模块提供的功能,是指将一个IP地址转换为另一个IP地址,一般用于未经注册的内部地址与合法的、已获注册的Internet IP地址间进行转换,在Internet IP地址紧张和/或不想让网络外部知道内部网络结构等场合下,NAT特别适合,而重定向对应于重定向器(Redirector),是指通过各种方法将各种网络请求重新确定一个方向转到其它位置,例如网页重定向和域名重定向等,其中,路由选择的变化也是对数据报文经由路径的一种重定向。
在本发明另一个实施例中,根据负载均衡策略,使所述客户端重定向到服务器集群中的服务器,以使所述客户端发起第二WebSocket请求以和所述重定向到的服务器建立链接可以是:根据负载均衡策略和服务器负载信息,从服务器集群中筛选出服务器。在本发明实施例中,由于第一对应关系表记录每一个服务器与每一个NAT地址的对应关系,因此,在从服务器集群中筛选出服务器后,可以根据第一对应关系表,将所述筛选出的服务器的地址对应的NAT地址发送至发起第一WebSocket请求的客户端。将所述筛选出的服务器的地址对应的网络地址转换NAT地址发送至发起第一WebSocket请求的客户端,可以使得客户端根据所述筛选出的服务器的地址对应的NAT地址发起第二WebSocket请求。与前述实施例不同的是,该客户端根据所述筛选出的服务器的地址对应的NAT地址发起第二WebSocket请求是发送至负载均衡装置,或者更具体的是,发送至网络地址转换模块。
在使得客户端根据所述筛选出的服务器的地址对应的NAT地址发起第二WebSocket请求后,进一步包括:网络地址转换模块接收客户端根据与选出的服务器的地址对应的NAT地址发起的第二WebSocket请求。由于第二WebSocket请求包含与所述筛选出的服务器的地址对应的NAT地址,因此,网络地址转换模块通过地址转换,将所述第二WebSocket请求发送至所述筛选出的服务器。
需要说明的是,客户端根据所述筛选出的服务器的地址对应的NAT地址发起第二WebSocket请求也是通过短链接进行,该短链接也可以是HTTP链接。与前述发起第一WebSocket请求使用的短链接不同的是,发起第二WebSocket请求后,由于服务器对第二WebSocket请求的响应是同意与客户端建立链接,因此,发起第二WebSocket请求使用的短链接并没有断开,而是升级为长链接。
上述通过地址转换,将所述第二WebSocket请求发送至所述筛选出的服务器包括包括:根据第二对应关系表,将所述第二WebSocket请求中与所述筛选出的服务器的地址对应的NAT地址转换为所述筛选出的服务器的地址;向所述筛选出的服务器发送所述经过地址转换的第二WebSocket请求,其中,第二对应关系表记录每一个NAT地址与每一个服务器的地址的对应关系。为了后续通过所述发起第二WebSocket请求时使用的短链接将筛选出的服务器返回的响应发送至所述客户端,在本发明实施例中,也可以根据第二对应关系表,将客户端的地址转换为与筛选出的服务器的地址对应的NAT地址。由于此时服务器的响应是同意客户端发起的WebSocket请求,因此,在通过发起第二WebSocket请求时使用的短链接将筛选出的服务器返回的响应发送至客户端后,该短链接并没有断开,而是升级为长链接。此后,客户端与服务器之间的数据交互是通过客户端与服务器之间建立的长链接进行。在上述本发明另一实施例中,由于加入了NAT和重定向机制,因此,在保证高效传输的同时,也消除了外部客户端访问内网的服务器集群导致的安全隐患。
需要说明的是,负载均衡装置通过将筛选出的服务器返回的响应转发至客户端是以透传方式发送,即对响应仅仅进行转发而不做任何形式的处理,因此,这种转发方式与服务器将响应直接发送至客户端而不经过负载均衡装置相当,可以保证负载均衡装置自身性能不受影响,从而提高负载均衡的分发能力。
在上述本发明实施例中,负载均衡策略包括静态负载均衡策略和动态负载均衡策略等等,所谓静态负载均衡策略,是利用系统负载的平均信息,而忽视系统当前的负载状况的方法,典型地,例如轮询算法,该算法认为集群服务器每时每刻的处理能力是无差别的,每一次来自网络的请求轮流分配给内部中的每台服务器,从1至N然后重新开始。具体而言,在本发明实施例中,静态负载均衡策略包括轮询、优先级、基于IP、基于报头/请求和基于cookie中的一种或任意组合。所谓动态负载均衡策略,是根据系统当前的负载状况来调整任务划分的方法,典型地,例如加权轮询算法,该算法考虑服务器之间的性能差异,以及服务器当前的负载状况,动态调整权值,根据权值的高低顺序并按照轮询的方法将任务请求分配到各个服务器。权值高的服务器比权值低的服务器能处理更多的任务请求。具体而言,在本发明实施例中,动态负载均衡策略包括加权轮询、最小链接、加权最小链接、基于局部的最小链接、带复制的基于局部的最小链接和最快响应中的一种或其任意组合。例如,若服务器负载信息记录了服务器上的链接数目,则负载均衡策略可以是使用最少链接策略,即负载均衡装置在选择服务器为当前发起请求的客户端服务时,可以选择当前其上链接数目最少的服务器为这一请求服务。
在具体举例说明时,先对本发明实施例中的第一对应关系表和第二对应关系表进行说明。第一对应关系表和第二对应关系表是负载均衡装置中维护的两种关系表格,第一对应关系表和第二对应关系表中的服务器用其ID标识,该标识在服务器集群中全局唯一,服务器地址可以使用其IP地址和端口号标识,而NAT地址也可以使用IP地址和/或端口号标识。下述表1和表2分别是第一对应关表和第二对应关系表的示意:
表1
表2
在上述表1(第一对应关系表)中,以IP地址为“193.67.174.53”和端口号为“8080”标识的NAT地址与以ID为“as_1”标识的服务器对应,以IP地址为“193.67.174.53”和端口号为“9034”标识的NAT地址与以ID为“as_5”标识的服务器对应,以及以IP地址为“193.67.185.99”和端口号为“7031”标识的NAT地址与以ID为“as_9”标识的服务器对应,等等;在上述表2(第二对应关系表)中,以端口号为“8080”标识的NAT地址与以IP地址为“192.167.1.102”和端口号为“80”标识的服务器对应,以端口号为“9034”标识的NAT地址与以IP地址为“192.167.1.103”和端口号为“9000”标识的服务器对应,等等。
以下以第一对应关系表和第二对应关系表如上述表1和表2为例,通过举例说明上述另一实施例中,将WebSocket请求定向到服务器集群中的服务器和通过第二短链接将定向的服务器的响应转发至客户端。
在负载均衡装置收到客户端发起的第一WebSocket请求后,根据负载均衡策略(此处假设负载均衡策略是根据服务器负载信息确定的负载均衡策略)和表1示例的服务器负载信息,从服务器集群中筛选出ID为“as_5”的应用服务器(Application Server)。根据表1示例的对应关系,第一WebSocket请求重定向到的NAT地址应该是以IP地址为“193.67.174.53”和端口号为“9034”标识的NAT地址。根据HTTP协议,负载均衡装置中的重定向器(Redirector)向客户端返回的响应的报文头(header)中,状态码填入3**(http协议中状态码300以上都是要求client进行重定向操作),包括但不限于在字段“location”中,填入重定向的地址,即NAT的IP地址“193.67.174.53”和端口号“9034”,其形式是:“location:193.67.174.53:9034”。重定向器(Redirector)返回响应后,便删除与客户端之间的第一短链接。客户端收到该响应后,根据字段“location”中的地址向NAT地址重新发起请求即第二WebSocket请求。
由于第二WebSocket请求中包含源地址即使客户端的地址和目的IP和目的端口即以IP地址为“193.67.174.53”和端口号为“9034”标识的NAT地址,负载均衡装置中的NAT模块在端口号为“9034”的端口监听到第二WebSocket请求后,通过查询表2示例的第二对应关系表,获知NAT端口号为9034对应的是以IP地址为“192.167.1.103”和端口号为“9000”标识的应用服务器(ApplicationServer)。因此,NAT模块可以修改第二WebSocket请求报文中源地址和目的地址,即,将其中的源地址(客户端的地址)修改为以IP地址为“193.67.174.53”和端口号为“9034”标识的NAT地址,将其中的目的地址(以IP地址为“193.67.174.53”和端口号为“9034”标识的NAT地址)修改为以IP地址为“192.167.1.103”和端口号为“9000”标识的应用服务器的地址,透传上述修改了地址的第二WebSocket请求报文至以IP地址为“192.167.1.103”和端口号为“9000”标识的应用服务器。
当以IP地址为“192.167.1.103”和端口号为“9000”标识的应用服务器将对第二WebSocket请求的响应返回至负载均衡装置后,负载均衡装置根据第一对应关系表和第二对应关系表反向转换IP地址和端口,将该响应通过第二短链接透传至发起第一WebSocket请求的客户端。
从上述本发明实施例提供的基于WebSocket传输的负载均衡方法可知,由于第一WebSocket请求是通过短链接传输,在将第一WebSocket请求重定向到服务器集群中的服务器后该短链接即断开,因此,与现有技术相比,本发明实施例提供的方法没有一直占用与负载均衡器之间的带宽,节省了网络资源;另一方面,由于在客户端和服务器建立链接后,客户端与服务器之间数据的交互通过客户端和服务器之间建立的链接进行,因此,与现有技术相比,本发明实施例提供的方法可以保证负载均衡装置自身性能不受影响,从而提高负载均衡的分发能力。
请参阅附图2,是本发明实施例提供的基于WebSocket传输的负载均衡装置结构示意图,示例的基于WebSocket传输的负载均衡装置在客户端/服务器(Client/Server,C/S)架构的通信网络中位于客户端和服务器(或服务器集群)之间。为了便于说明,仅仅示出了与本发明实施例相关的部分。附图2示例的基于WebSocket传输的负载均衡装置在客户端/服务器(Client/Server,C/S)架构的通信网络中位于客户端和服务器(或服务器集群)之间,其包括接收模块201和重定向模块202,其中:
接收模块201,用于接收客户端经过短链接发起的WebSocket请求;
重定向模块202,用于根据负载均衡策略,使所述客户端重定向到服务器集群中的服务器,以使所述客户端发起第二WebSocket请求以和所述重定向到的服务器建立链接。
需要说明的是,以上基于WebSocket传输的负载均衡装置的实施方式中,各功能模块的划分仅是举例说明,实际应用中可以根据需要,例如相应硬件的配置要求或者软件的实现的便利考虑,而将上述功能分配由不同的功能模块完成,即将所述基于WebSocket传输的负载均衡装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。而且,实际应用中,本实施例中的相应的功能模块可以是由相应的硬件实现,也可以由相应的硬件执行相应的软件完成,例如,前述的接收模块,可以是具有执行前述接收客户端经过短链接发起的第一WebSocket请求的硬件,例如接收器,也可以是能够执行相应计算机程序从而完成前述功能的一般处理器或者其他硬件设备;再如前述的重定向模块,可以是具有执行前述根据负载均衡策略,使所述客户端重定向到服务器集群中的服务器,以使所述客户端发起第二WebSocket请求以和所述重定向到的服务器建立链接功能的硬件,例如重定向器,也可以是能够执行相应计算机程序从而完成前述功能的一般处理器或者其他硬件设备(本说明书提供的各个实施例都可应用上述描述原则)。
附图2示例的重定向模块202可以包括选择单元301和地址发送单元302,如附图3所示本发明另一实施例提供的基于WebSocket传输的负载均衡装置,其中:
选择单元301,用于根据负载均衡策略,从服务器集群中选定服务器;
地址发送单元302,用于将所述选定的服务器的地址对应的NAT地址发送至所述客户端,以使所述客户端向所述选定的服务器发起第二WebSocket请求以和所述选定的服务器建立链接。
附图2示例的重定向模块202也可以包括筛选单元401和地址发送单元402,所述基于WebSocket传输的负载均衡装置还包括网络地址转换模块403,网络地址转换模块403包括接收子模块4031和发送子模块4032,如附图4所示本发明另一实施例提供的基于WebSocket传输的负载均衡装置04,其中:
筛选单元401,用于根据负载均衡策略和服务器负载信息,从服务器集群中筛选出服务器;
地址发送单元402,用于根据第一对应关系表,将所述筛选出的服务器的地址对应的网络地址转换NAT地址发送至发起第一WebSocket请求的客户端,以使所述客户端根据所述筛选出的服务器的地址对应的NAT地址发起第二WebSocket请求,所述第一对应关系表记录每一个服务器与每一个NAT地址的对应关系;
接收子模块4031,用于接收所述第二WebSocket请求,所述第二WebSocket请求包含与所述筛选出的服务器的地址对应的NAT地址;
发送子模块4032,用于通过地址转换,将所述第二WebSocket请求发送至所述筛选出的服务器。
附图4示例的发送子模块4032可以包括地址转换单元501和第二请求发送单元502,如附图5所示本发明另一实施例提供的基于WebSocket传输的负载均衡装置05,其中:
地址转换单元501,用于根据第二对应关系表,将所述第二WebSocket请求中与所述筛选出的服务器的地址对应的NAT地址转换为所述筛选出的服务器的地址,所述第二对应关系表记录每一个NAT地址与每一个服务器的地址的对应关系;
第二请求发送单元502,用于向所述筛选出的服务器发送所述经过地址转换的第二WebSocket请求。
在上述附图2至附图5示例的基于WebSocket传输的负载均衡装置中,负载均衡策略包括静态负载均衡策略和动态负载均衡策略等等,所谓静态负载均衡策略,是利用系统负载的平均信息,而忽视系统当前的负载状况的方法,典型地,例如轮询算法,该算法认为集群服务器每时每刻的处理能力是无差别的,每一次来自网络的请求轮流分配给内部中的每台服务器,从1至N然后重新开始。具体而言,在本发明实施例中,静态负载均衡策略包括轮询、优先级、基于IP、基于报头/请求和基于cookie中的一种或任意组合。所谓动态负载均衡策略,是根据系统当前的负载状况来调整任务划分的方法,典型地,例如加权轮询算法,该算法考虑服务器之间的性能差异,以及服务器当前的负载状况,动态调整权值,根据权值的高低顺序并按照轮询的方法将任务请求分配到各个服务器。权值高的服务器比权值低的服务器能处理更多的任务请求。具体而言,在本发明实施例中,动态负载均衡策略包括加权轮询、最小链接、加权最小链接、基于局部的最小链接、带复制的基于局部的最小链接和最快响应中的一种或其任意组合。
需要说明的是,上述装置各模块/单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,其带来的技术效果与本发明方法实施例相同,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,比如以下各种方法的一种或多种或全部:
接收客户端经过短链接发起的第一WebSocket请求;
根据负载均衡策略,使所述客户端重定向到服务器集群中的服务器,以使所述客户端发起第二WebSocket请求以和所述重定向到的服务器建立链接。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁盘或光盘等。
以上对本发明实施例提供的一种基于WebSocket传输的负载均衡方法和装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种基于WebSocket传输的负载均衡方法,其特征在于,所述方法包括:
接收客户端经过短链接发起的第一WebSocket请求;
根据负载均衡策略,使所述客户端重定向到服务器集群中的服务器后,断开与该客户端的短链接,以使所述客户端发起第二WebSocket请求以和所述重定向到的服务器建立链接;
所述使所述客户端重定向到服务器集群中的服务器后,断开与该客户端的短链接,以使所述客户端发起第二WebSocket请求以和所述重定向到的服务器建立链接包括:
根据负载均衡策略和服务器负载信息,从服务器集群中筛选出服务器;
根据第一对应关系表,将所述筛选出的服务器的地址对应的网络地址转换NAT地址发送至所述客户端,以使所述客户端向所述筛选出的服务器的地址对应的NAT地址发起第二WebSocket请求,所述第一对应关系表记录每一个服务器与每一个NAT地址的对应关系;
所述方法还包括:
接收所述客户端根据所述筛选出的服务器的地址对应的NAT地址发起的所述第二WebSocket请求,所述第二WebSocket请求包含与所述筛选出的服务器的地址对应的NAT地址;
通过地址转换,将所述第二WebSocket请求发送至所述筛选出的服务器。
2.如权利要求1所述的方法,其特征在于,所述根据负载均衡策略,使所述客户端重定向到服务器集群中的服务器,以使所述客户端发起第二WebSocket请求以和所述重定向到的服务器建立链接包括:
根据负载均衡策略,从所述服务器集群中选定服务器;
将所述选定的服务器的地址发送至所述客户端,以使所述客户端根据所述选定的服务器的地址向所述选定的服务器发起第二WebSocket请求以和所述选定的服务器建立链接。
3.如权利要求1所述的方法,其特征在于,所述通过地址转换,将所述第二WebSocket请求发送至所述筛选出的服务器包括:
根据第二对应关系表,将所述第二WebSocket请求中与所述筛选出的服务器的地址对应的NAT地址转换为所述筛选出的服务器的地址,所述第二对应关系表记录每一个NAT地址与每一个服务器的地址的对应关系;
向所述筛选出的服务器发送所述经过地址转换的第二WebSocket请求。
4.如权利要求2至3任意一项所述的方法,其特征在于,所述负载均衡策略包括静态负载均衡策略和动态负载均衡策略。
5.如权利要求4所述的方法,其特征在于,所述静态负载均衡策略包括轮询、优先级、基于IP、基于报头/请求和基于cookie中的一种或任意组合,所述动态负载均衡策略包括加权轮询、最小链接、加权最小链接、基于局部的最小链接、带复制的基于局部的最小链接和最快响应中的一种或任意组合。
6.一种基于WebSocket传输的负载均衡装置,其特征在于,所述装置包括:
接收模块,用于接收客户端经过短链接发起的第一WebSocket请求;
重定向模块,用于根据负载均衡策略,使所述客户端重定向到服务器集群中的服务器后,断开与该客户端的短链接,以使所述客户端发起第二WebSocket请求以和所述重定向到的服务器建立链接;
所述重定向模块包括筛选单元和地址发送单元,所述装置还包括网络地址转换模块,所述网络地址转换模块包括接收子模块和发送子模块;
所述筛选单元,用于根据负载均衡策略和服务器负载信息,从服务器集群中筛选出服务器;
所述地址发送单元,用于根据第一对应关系表,将所述筛选出的服务器的地址对应的网络地址转换NAT地址发送至所述客户端,以使所述客户端向所述筛选出的服务器的地址对应的NAT地址发起第二WebSocket请求,所述第一对应关系表记录每一个服务器与每一个NAT地址的对应关系;
所述接收子模块,用于接收所述第二WebSocket请求,所述第二WebSocket请求包含与所述筛选出的服务器的地址对应的NAT地址;
所述发送子模块,用于通过地址转换,将所述第二WebSocket请求发送至所述筛选出的服务器。
7.如权利要求6所述的装置,其特征在于,所述重定向模块包括选择单元和地址发送单元;
所述选择单元,用于根据负载均衡策略,从所述服务器集群中选定服务器;
所述地址发送单元,用于将所述选定的服务器的地址对应的NAT地址发送至所述客户端,以使所述客户端向所述选定的服务器发起第二WebSocket请求以和所述选定的服务器建立链接。
8.如权利要求6所述的装置,其特征在于,所述发送子模块包括地址转换单元和第二请求发送单元;
所述地址转换单元,用于根据第二对应关系表,将所述第二WebSocket请求中与所述筛选出的服务器的地址对应的NAT地址转换为所述筛选出的服务器的地址,所述第二对应关系表记录每一个NAT地址与每一个服务器的地址的对应关系;
所述第二请求发送单元,用于向所述筛选出的服务器发送所述经过地址转换的第二WebSocket请求。
9.如权利要求7至8任意一项所述的装置,其特征在于,所述负载均衡策略包括静态负载均衡策略和动态负载均衡策略。
10.如权利要求9所述的装置,其特征在于,所述静态负载均衡策略包括轮询、优先级、基于IP、基于报头/请求或基于cookie中的一种或任意组合,所述动态负载均衡策略包括加权轮询、最小链接、加权最小链接、基于局部的最小链接、带复制的基于局部的最小链接和最快响应中的一种或任意组合。
CN201210575848.8A 2012-12-26 2012-12-26 一种基于WebSocket传输的负载均衡方法和装置 Active CN103067292B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210575848.8A CN103067292B (zh) 2012-12-26 2012-12-26 一种基于WebSocket传输的负载均衡方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210575848.8A CN103067292B (zh) 2012-12-26 2012-12-26 一种基于WebSocket传输的负载均衡方法和装置

Publications (2)

Publication Number Publication Date
CN103067292A CN103067292A (zh) 2013-04-24
CN103067292B true CN103067292B (zh) 2016-12-28

Family

ID=48109760

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210575848.8A Active CN103067292B (zh) 2012-12-26 2012-12-26 一种基于WebSocket传输的负载均衡方法和装置

Country Status (1)

Country Link
CN (1) CN103067292B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6279938B2 (ja) * 2014-03-10 2018-02-14 株式会社東芝 接続管理装置、通信システム、接続管理方法およびプログラム
CN104980898A (zh) * 2014-04-04 2015-10-14 中兴通讯股份有限公司 一种信息推送方法、系统及设备
CN104994093B (zh) * 2015-07-01 2018-11-02 网宿科技股份有限公司 一种服务负载均衡方法及系统
CN105376334A (zh) * 2015-12-14 2016-03-02 曙光信息产业(北京)有限公司 负载均衡方法及装置
CN108123888A (zh) * 2016-11-29 2018-06-05 中兴通讯股份有限公司 报文的负载均衡方法、装置及系统
CN107528891B (zh) * 2017-08-04 2020-02-18 北京恒信仪和信息技术有限公司 一种基于WebSocket的自动集群方法及其系统
CN109495596B (zh) * 2017-09-13 2022-04-05 阿里巴巴集团控股有限公司 一种实现地址转换的方法及装置
CN107911438A (zh) * 2017-11-06 2018-04-13 出门问问信息科技有限公司 数据处理的方法、装置及系统
CN108282520A (zh) * 2017-12-29 2018-07-13 广东电网有限责任公司电力科学研究院 发电厂优化系统及其运行方法
CN108650286A (zh) * 2018-03-09 2018-10-12 华洋通信科技股份有限公司 一种基于Socket和WebSocket混合模式的服务器系统的实现方法
CN108418884A (zh) * 2018-03-09 2018-08-17 北京奇艺世纪科技有限公司 一种传输业务数据的方法、装置及电子设备
CN109040243B (zh) * 2018-08-02 2021-04-30 新华三信息安全技术有限公司 一种报文处理方法及装置
CN109302496A (zh) * 2018-11-28 2019-02-01 南昌百恒信息技术有限公司 一种新型实时信息流交互方法
CN109698796A (zh) * 2019-03-07 2019-04-30 江苏省人民医院 一种高性能网络负载均衡系统及其实现方法
CN111314414B (zh) * 2019-12-17 2021-09-28 聚好看科技股份有限公司 数据传输方法、装置及系统
CN112953894B (zh) * 2021-01-26 2022-05-20 复旦大学 一种多路请求复制分发系统和方法
CN113821342B (zh) * 2021-09-18 2024-08-20 济南浪潮数据技术有限公司 一种集群websocket服务负载均衡的方法、装置、设备及可读介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101431520A (zh) * 2008-12-24 2009-05-13 金蝶软件(中国)有限公司 一种建立连接的方法、重定向连接的方法及相关设备
WO2010127327A1 (en) * 2009-05-01 2010-11-04 Kaazing Corporation Enterprise client-server system and methods of providing web application support through distributed emulation of websocket communications
CN102833323A (zh) * 2012-08-14 2012-12-19 新浪网技术(中国)有限公司 服务器远程控制受控终端的方法和系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101431520A (zh) * 2008-12-24 2009-05-13 金蝶软件(中国)有限公司 一种建立连接的方法、重定向连接的方法及相关设备
WO2010127327A1 (en) * 2009-05-01 2010-11-04 Kaazing Corporation Enterprise client-server system and methods of providing web application support through distributed emulation of websocket communications
CN102833323A (zh) * 2012-08-14 2012-12-19 新浪网技术(中国)有限公司 服务器远程控制受控终端的方法和系统

Also Published As

Publication number Publication date
CN103067292A (zh) 2013-04-24

Similar Documents

Publication Publication Date Title
CN103067292B (zh) 一种基于WebSocket传输的负载均衡方法和装置
US10440104B2 (en) Load balancing with layered edge servers
CN103905500B (zh) 一种接入应用服务器的方法和装置
CN110198307A (zh) 一种移动边缘计算节点的选择方法、装置及系统
JP5855663B2 (ja) サーバ負荷状態に基づきサーバをバランスさせるシステムと方法
CN104219127B (zh) 一种虚拟网络实例的创建方法以及设备
CN101729591B (zh) 一种用户引导装置、系统和方法
US8514749B2 (en) Routing requests for duplex applications
CN102404229B (zh) 负载均衡系统、装置及方法
US8032609B2 (en) Dynamic endpoint aggregator for web services
CN104486402B (zh) 一种基于大型网站组合均衡的方法
CN104660707B (zh) 一种基于地理位置的代理服务器均衡分配的方法
CN101783771A (zh) 一种实现负载均衡持续性的方法和设备
CN109150953A (zh) 控制通信系统中的连接的装置和方法
US11128733B2 (en) Server-side resource prioritization
US20150127837A1 (en) Relay apparatus and data transfer method
CN103533080A (zh) 用于lvs的服务器调度方法及装置
CN105610930A (zh) 一种基于dns的数据优选方法
CN102801824B (zh) Nat设备、napt设备和tcp应用引流的处理方法与处理系统
CN108737343A (zh) 一种安全访问网络的实现方法及装置
CN108737471A (zh) 一种网络访问方法及装置
JP6693925B2 (ja) サーバ、通信制御システム、および、通信制御方法
CN106330833A (zh) 基于因特网内容适配协议的通信方法、客户端和服务器
CN101938427B (zh) 一种全局负载均衡中的重定向方法和装置
CN101841554B (zh) 终端请求下载资源的方法和一种终端

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant