一种基于WebSocket传输的负载均衡方法和装置的利记博彩app

文档序号:7870368阅读:551来源:国知局
专利名称:一种基于WebSocket传输的负载均衡方法和装置的利记博彩app
技术领域
本发明涉及通信领域,尤其涉及一种基于WebSocket传输的负载均衡方法和装置。
背景技术
随着超文本标记语言(HypertextMarkup 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传输的负载均衡方法流程示意图,其执行主体可以是客户端与服务器集群之间的负载均衡装置,主要包括步骤SlOl和步骤S102 S101,接收客户端经过短链接发起的第一 WebSocket请求。为了描述方便,将客户端经过短链接发起的WebSocket请求称为第一 WebSocket请求。在本发明实施例中,短链接例如可以是超文本传送协议(HyperText TransferProtocol, 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和重定向机制,因此,在保证高效传输的同时,也消除了外部客户端访问内网的服务器集群导致的安全隐患。需要说明的是,负载均衡装置通过将筛选出的服务器返回的响应转发至客户端是以透传方式发送,即对响应仅仅进行转发而不做任何形式的处理,因此,这种转发方式与服务器将响应直接发送至客户端而不经过负载均衡装置相当,可以保证负载均衡装置自身性能不受影响,从而提高负载均衡的分发能力。在上述本发明实施例中,负载均衡策略包括静态负载均衡策略和动态负载均衡策略等等,所谓静态负载均衡 策略,是利用系统负载的平均信息,而忽视系统当前的负载状况的方法,典型地,例如轮询算法,该算法认为集群服务器每时每刻的处理能力是无差别的,每一次来自网络的请求轮流分配给内部中的每台服务器,从I至N然后重新开始。具体而言,在本发明实施例中,静态负载均衡策略包括轮询、优先级、基于IP、基于报头/请求和基于cookie中的一种或任意组合。所谓动态负载均衡策略,是根据系统当前的负载状况来调整任务划分的方法,典型地,例如加权轮询算法,该算法考虑服务器之间的性能差异,以及服务器当前的负载状况,动态调整权值,根据权值的高低顺序并按照轮询的方法将任务请求分配到各个服务器。权值高的服务器比权值低的服务器能处理更多的任务请求。具体而言,在本发明实施例中,动态负载均衡策略包括加权轮询、最小链接、加权最小链接、基于局部的最小链接、带复制的基于局部的最小链接和最快响应中的一种或其任意组合。例如,若服务器负载信息记录了服务器上的链接数目,则负载均衡策略可以是使用最少链接策略,即负载均衡装置在选择服务器为当前发起请求的客户端服务时,可以选择当前其上链接数目最少的服务器为这一请求服务。在具体举例说明时,先对本发明实施例中的第一对应关系表和第二对应关系表进行说明。第一对应关系表和第二对应关系表是负载均衡装置中维护的两种关系表格,第一对应关系表和第二对应关系表中的服务器用其ID标识,该标识在服务器集群中全局唯一,服务器地址可以使用其IP地址和端口号标识,而NAT地址也可以使用IP地址和/或端口号标识。下述表I和表2分别是第一对应关表和第二对应关系表的不意
权利要求
1.一种基于WebSocket传输的负载均衡方法,其特征在于,所述方法包括 接收客户端经过短链接发起的第一 WebSocket请求; 根据负载均衡策略,使所述客户端重定向到服务器集群中的服务器,以使所述客户端发起第二 WebSocket请求以和所述重定向到的服务器建立链接。
2.如权利要求1所述的方法,其特征在于,所述根据负载均衡策略,使所述客户端重定向到服务器集群中的服务器,以使所述客户端发起第二 WebSocket请求以和所述重定向到的服务器建立链接包括 根据负载均衡策略,从所述服务器集群中选定服务器; 将所述选定的服务器的地址发送至所述客户端,以使所述客户端根据所述选定的服务器的地址向所述选定的服务器发起第二 WebSocket请求以和所述选定的服务器建立链接。
3.如权利要求1所述的方法,其特征在于,所述使所述客户端重定向到服务器集群中的服务器,以使所述客户端发起第二 WebSocket请求以和所述重定向到的服务器建立链接包括 根据负载均衡策略和服务器负载信息,从服务器集群中筛选出服务器; 根据第一对应关系表,将所述筛选出的服务器的地址对应的网络地址转换NAT地址发送至所述客户端,以使所述客户端向所述筛选出的服务器的地址对应的NAT地址发起第二WebSocket请求,所述第一对应关系表记录每一个服务器与每一个NAT地址的对应关系; 所述方法还包括 接收所述客户端根据所述筛选出的服务器的地址对应的NAT地址发起的所述第二WebSocket请求,所述第二 WebSocket请求包含与所述筛选出的服务器的地址对应的NAT地址; 通过地址转换,将所述第二 WebSocket请求发送至所述筛选出的服务器。
4.如权利要求3所述的方法,其特征在于,所述通过地址转换,将所述第二WebSocket请求发送至所述筛选出的服务器包括 根据第二对应关系表,将所述第二 WebSocket请求中与所述筛选出的服务器的地址对应的NAT地址转换为所述筛选出的服务器的地址,所述第二对应关系表记录每一个NAT地址与每一个服务器的地址的对应关系; 向所述筛选出的服务器发送所述经过地址转换的第二 WebSocket请求。
5.如权利要求2至4任意一项所述的方法,其特征在于,所述负载均衡策略包括静态负载均衡策略和动态负载均衡策略。
6.如权利要求5所述的方法,其特征在于,所述静态负载均衡策略包括轮询、优先级、基于IP、基于报头/请求和基于cookie中的一种或任意组合,所述动态负载均衡策略包括加权轮询、最小链接、加权最小链接、基于局部的最小链接、带复制的基于局部的最小链接和最快响应中的一种或任意组合。
7.一种基于WebSocket传输的负载均衡装置,其特征在于,所述装置包括 接收模块,用于接收客户端经过短链接发起的第一 WebSocket请求; 重定向模块,用于根据负载均衡策略,使所述客户端重定向到服务器集群中的服务器,以使所述客户端发起第二 WebSocket请求以和所述重定向到的服务器建立链接。
8.如权利要求7所述的装置,其特征在于,所述重定向模块包括选择单元和地址发送单元; 所述选择单元,用于根据负载均衡策略,从所述服务器集群中选定服务器; 所述地址发送单元,用于将所述选定的服务器的地址对应的NAT地址发送至所述客户端,以使所述客户端向所述选定的服务器发起第二 WebSocket请求以和所述选定的服务器建立链接。
9.如权利要求7所述的装置,其特征在于,所述重定向模块包括筛选单元和地址发送单元,所述装置还包括网络地址转换模块,所述网络地址转换模块包括接收子模块和发送子模块; 所述筛选单元,用于根据负载均衡策略和服务器负载信息,从服务器集群中筛选出服务器; 所述地址发送单元,用于根据第一对应关系表,将所述筛选出的服务器的地址对应的网络地址转换NAT地址发送至所述客户端,以使所述客户端向所述筛选出的服务器的地址对应的NAT地址发起第二 WebSocket请求,所述第一对应关系表记录每一个服务器与每一个NAT地址的对应关系; 所述接收子模块,用于接收所述第二 WebSocket请求,所述第二 WebSocket请求包含与所述筛选出的服务器的地址对应的NAT地址; 所述发送子模块,用于通过地址转换,将所述第二 WebSocket请求发送至所述筛选出的服务器。
10.如权利要求9所述的装置,其特征在于,所述发送子模块包括地址转换单元和第二请求发送单元; 所述地址转换单元,用于根据第二对应关系表,将所述第二 WebSocket请求中与所述筛选出的服务器的地址对应的NAT地址转换为所述筛选出的服务器的地址,所述第二对应关系表记录每一个NAT地址与每一个服务器的地址的对应关系; 所述第二请求发送单元,用于向所述筛选出的服务器发送所述经过地址转换的第二WebSocket 请求。
11.如权利要求8至10任意一项所述的装置,其特征在于,所述负载均衡策略包括静态负载均衡策略和动态负载均衡策略。
12.如权利要求11所述的装置,其特征在于,所述静态负载均衡策略包括轮询、优先级、基于IP、基于报头/请求或基于cookie中的一种或任意组合,所述动态负载均衡策略包括加权轮询、最小链接、加权最小链接、基于局部的最小链接、带复制的基于局部的最小链接和最快响应中的一种或任意组合。
全文摘要
本发明实施例提供一种基于WebSocket传输的负载均衡方法和装置,以节省网络资源并提高分发效率。所述方法包括接收客户端经过短链接发起的第一WebSocket请求;根据负载均衡策略,使所述客户端重定向到服务器集群中的服务器,以使所述客户端发起第二WebSocket请求以和所述重定向到的服务器建立链接。本发明实施例提供的方法没有一直占用与负载均衡器之间的带宽,节省了网络资源;另一方面,由于在客户端和服务器建立链接后,客户端与服务器之间数据的交互通过客户端和服务器之间建立的链接进行,因此,与现有技术相比,本发明实施例提供的方法可以保证负载均衡装置自身性能不受影响,从而提高负载均衡的分发能力。
文档编号H04L12/803GK103067292SQ201210575848
公开日2013年4月24日 申请日期2012年12月26日 优先权日2012年12月26日
发明者朱绍铿, 唐冠军, 王云鹏 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1