多客户端互动的负载均衡方法及系统的制作方法

文档序号:6575396阅读:132来源:国知局
专利名称:多客户端互动的负载均衡方法及系统的制作方法
技术领域
本发明涉及一种负载均衡方法及其系统,该方法及系统用于响应较大数量的客户端的请求并据此利用分布式方法进行较复杂的逻辑运算,可以根据负载的情况增加或减少逻辑运算服务器而不影响对客户端请求的响应,特别适合于在线游戏、数字定位、数字地图等客户端数量众多而运算量大的网络应用场合。
背景技术
互联网的快速增长使得网络服务器面对的访问者数量快速增加,网络服务器需要具备提供大量并发访问服务的能力,单台服务器的性能是有限的,一般来说,一台PC服务器所能提从的并发访问处理能力大约为1000个,更为高档的专用服务器能够支持3000-5000个并发访问,这样的能力还是无法满足负载较大的网站的要求,尤其是网络请求具有突发性,当某些重大事件发生时,网络访问就会急剧上升,从而造成网络瓶颈。因此,必须采用多台服务器提供网络服务,并将网络请求分配给这些服务器分担,才能提供处理大量并发服务的能力。
目前利用多台服务器实现大负载情况下的负载均衡,主要有以下方法一是基于特定服务器软件的负载均衡,利用网络协议支持的“重定向”功能,当服务器认为自己负载较大时,送回一个重定向指令,使浏览器去服务器集群中的其他服务器获得响应,这种方式不易实现负载的均衡,且容易发生多台服务器重复发送重定向指令而造成死循环;二是基于域名服务器(DNS)的负载均衡,通过DNS服务中的随机名字解析来实现,即在DNS服务器中,为多个不同的地址配置同一个名字,而最终查询这个名字的客户机将在解析时获得其中一个地址,不同的客户机可能得到不同的地址,从而访问不同的服务器,以达到负载均衡的目的,这种方式的优点是简单、易行,并且服务器可以位于互联网的任意位置上,但是为保证DNS数据及时更新,一般都要将DNS的刷新时间设置的较小,由此造成较大的额外网络流量,并且更改了DNS数据后也不能立即生效,同时,DNS负载均衡方法无法得知服务器之间的差异,不能做到为性能较好的服务器多分配请求,也不能了解到服务器的当前状态,甚至会出现客户请求集中在某一台服务器上的偶然情况;三是利用反向代理实现负载均衡,即客户机的请求通过代理服务器均匀转发给多台内部的WEB服务器之一,以达到负载均衡的目的,但由于每次代理,代理服务器必须打开对外和对内两个连接,当连接请求数量非常大时,代理服务器的负载也就非常大了,到最后反向代理服务器会成为服务的瓶颈;四是基于网络地址转换的负载均衡技术。网络地址转换一般用于内部地址和外部地址间的转换,使得具备内部地址的计算机能访问外部网络,当外部网络中的计算机访问地址转换网关拥有的某一外部地址时,地址转换网关能将其转发到一个映射的内部地址上,因此如果地址转换网关能将每个连接均匀转换为不同的内部服务器地址,此后外部网络中的计算机就各自与自己转换得到的地址上的服务器进行通信,从而达到负载分担的目的。这种负载均衡方式可以用软件或硬件方式实现,可以解决服务器瓶颈问题,但是,一方面,网络的传输能力受到网络连接带宽的限制,目前很多站点的互联网连接带宽总共不过10MB,只有极少的站点能够拥有较高速的网络连接,采用这种技术无法解决由于网络带宽造成的限制;另一方面,所有的网络连接都必须通过中心负载均衡器,如果负载特别大,以至于后台的服务器数量不是几台、十几台,而是上百台甚至更多时,即使是使用性能优秀的硬件交换机也会遇到瓶颈。
上述几种方法,用于WEB站点、Email等逻辑运算较少的系统,有各自的效果,也存在所述的缺点,而当用于在线游戏、数字定位、数字地图等逻辑复杂、运算量庞大的系统时,几乎没有什么很有效的解决办法。

发明内容
本发明目的是提供一种多客户端互动的负载均衡方法,可以把服务器分布在不同的地址或网段,且用于控制的前置机不易发生瓶颈阻塞;本发明的另一个目的是提供一种实现上述方法的系统,以有效地实现复杂逻辑及大运算量下的并发访问请求的负载均衡。
为达到上述目的,本发明采用的技术方案是一种多客户端互动的负载均衡方法,通过多个客户端、一台前置机和多个逻辑运算服务器以及它们之间的连接实现,包括下列步骤把系统负载根据逻辑范围分配到多个逻辑运算服务器上,并把各个逻辑运算服务器的状态信息存储在前置机内;如果有新接入的客户端,则由其向前置机发出请求,如果原有客户端的交互信息超出某一逻辑运算服务器的控制范围,则由该逻辑运算服务器将其请求交给前置机,由前置机根据请求信息找到相应的逻辑运算服务器;判断该逻辑运算服务器是否在最大负载运转,如是,启用备用逻辑运算服务器,缩小原逻辑运算服务器的控制范围,将其余的范围交由备用逻辑运算服务器控制,并移交相应的客户信息及连接,由前置机重新确定客户端的请求所对应的逻辑运算服务器;建立客户端与该逻辑运算服务器的直接连接,成功后断开客户端与前置机的连接,更新前置机中逻辑运算服务器的状态信息;上述过程中,如果没有备用逻辑运算服务器或者连接失败,则返回相应的失败信息。
上述技术方案中,所述的“前置机”是一台负责接入和控制的服务器,而“逻辑运算服务器”是为响应客户端的请求而进行逻辑判断、分析和运算的服务器,根据负载的大小及逻辑运算的复杂程度,可以有十几台、几十台、上百台甚至更多数量的逻辑运算服务器;所述“客户端”是向服务器提供请求信息并由服务器向其提供显示页面信息、运算结果等返回信息的计算机或其他专用设备,客户端可以通过互联网接入,其数量可以是成千上万的,新接入的客户端总是建立与前置机间的连接并向其发出请求,由前置机判断后连接某一逻辑运算服务器,此后,客户端与前置机间的连接将被断开,因此,与前置机连接的始终只有新接入的客户端以及正在改变连接的逻辑运算服务器的客户端。
上述技术方案中,对于新接入的客户端请求,如果连接返回失败信息,则由前置机控制连接其他的逻辑运算服务器,同时向客户端发送当前逻辑运算服务器忙,更换其他服务器的信息;对于原有客户端的交互信息超出某一逻辑运算服务器的控制范围时,如果试图连接对应逻辑运算服务器时返回失败信息,则前置机控制客户机返回原来的逻辑运算服务器,并向客户机发送相邻区域忙的信息。
上述技术方案中,还可以设置一个数据库,用于存储管理各逻辑运算服务器共同使用的逻辑信息。
上述技术方案中,进行初始负载分配时,可以根据预计的负载流量设定使用的逻辑运算服务器的个数,把其余的逻辑运算服务器设定为备用逻辑运算服务器。
上述技术方案中,还可以设定一个初始运行时间,经过该初始运行时间后,当2台或以上的逻辑运算服务器的负载明显很轻时,可以将其逻辑范围及连接的客户端合并到其中一个逻辑运算服务器上,更改前置机上的状态信息,把其余的逻辑运算服务器设定为备用逻辑运算服务器,使其进入待机状态。
上述技术方案中,所述的逻辑运算服务器可以分布在互联网的不同网段或不同地理位置,并通过互联网实现与前置机及客户端的互通。
为实现本发明另一个目的的技术方案是一种多客户端互动的负载均衡系统,包括客户机、前置机和逻辑运算服务器,其中前置机由一台服务器构成,前置机与每个逻辑运算服务器之间分别连接,每一客户机可以分别与前置机和逻辑运算服务器建立连接,所述前置机内存储有每个逻辑运算服务器的状态信息。
上述技术方案中,所述逻辑运算服务器的状态信息包括最大负载量、现有负载量、逻辑控制范围和逻辑位置。
上述技术方案中,实际上存在着三种连接关系,其中前置机与逻辑运算服务器之间可以是经常连接的关系,该连接一般包括两种情况,对于与前置机位于同一物理位置区域的逻辑运算服务器,可以通过局域网连接,对于与前置机位于不同物理位置区域的逻辑运算服务器,通过互联网连接,前置机并不关心逻辑运算服务器的具体物理位置;客户机则通过互联网接入,客户机在登录时,首先建立与前置机间的连接,当前置机把客户机移交给某一逻辑运算服务器时,客户机与该逻辑运算服务器建立连接,稳定后,将断开前置机与客户机之间的连接,只有在客户机的请求超过了该逻辑运算服务器的控制范围,需要更换逻辑运算服务器时,才会再度建立与前置机间的连接,也就是说,每个客户机与前置机间的连接是短暂的,而与控制相应逻辑范围的逻辑运算服务器间的连接是较稳定的。
上述技术方案中,还可以包括存储公用逻辑信息的数据库,所述数据库可以位于前置机上,也可以设置单独的数据库服务器;比如,对于网络游戏来说,数据库中存储有整个游戏的场景等,各逻辑运算服务器根据自己的逻辑控制范围从数据库中读取相应的部分场景;对于数字地图来说,数据库中存储有整体(如全球)的数字地图,而各逻辑运算服务器则分别从中获取自已负责的区域的数据;根据数据库的信息量以及前置机可能的接入负载量来确定将数据库放置于前置机上或者建立单独的数据库服务器。
本发明的工作原理是本发明针对现有负载均衡技术的缺陷,同时考虑了服务器负载能力和网络带宽两方面的影响,设置了负责管理逻辑运算服务器,指导客户端连接的前置机,首先,将系统负载分配到各个逻辑运算服务器上,这种分配可以人工进行,也可以由前置机智能地进行,在前置机中储存着现有逻辑运算服务器的最大负载量、现有负载量、逻辑控制范围以及逻辑位置等配置数据,这些配置数据可以由人为事先输入,并随着系统的运行而自动变化,逻辑控制范围由逻辑运算服务器的硬件配置来决定;当客户端有数据请求时,前置机根据客户端所在的逻辑范围找到相应的逻辑运算服务器,判断该逻辑运算服务器是否在最大负载运转,如果是最大负载则启动备用逻辑运算服务器,把该逻辑运算服务器的控制范围缩小,同时把缩小范围以外的客户送到备用逻辑运算服务器上,然后判断该客户的逻辑范围在哪一台逻辑运算服务器上,把客户的连接送到相应的逻辑运算服务器,如果连接成功,则前置机在该逻辑运算服务器的现有负载量增加,然后前置机与客户端的连接断开,由逻辑运算服务器直接与客户端进行运算逻辑交互,如果连接失败,则前置机试图连接其他逻辑运算服务器,仍然失败则返回客户端连接失败信息。
在每一台逻辑运算服务器上的运算逻辑是相同的,单台逻辑运算服务器也是采用集中式多客户连接管理方法设计,而逻辑运算服务器同时也可以从前置机那里知道其他逻辑运算服务器的逻辑控制范围,如果客户移动出了该逻辑运算服务器的逻辑控制范围,则该逻辑运算服务器把该客户的连接送到前置机,前置机经过一系列的逻辑运算找到客户所要去控制范围的逻辑运算服务器,则把该客户送到相应的逻辑运算服务器上,如果失败则返回原逻辑运算服务器,否则客户断开与原逻辑运算服务器的连接,直接进入一个新的逻辑控制范围,在这种情况下,可以对单一接点的带宽、机器数量等要求降到最低点。
由于上述技术方案运用,本发明与现有技术相比具有下列优点1.由于本发明利用前置机管理各逻辑运算服务器的负载及控制范围,因此可以根据负载情况增加或减少投入运行的逻辑运算服务器的数量,实现负载均衡,应付突发的并发访问增加;2.由于本发明的前置机只负责逻辑分配,不负责具体的逻辑运算及连接,客户机在进行运算逻辑交互时直接与逻辑运算服务器连接,因此,前置机不会成为负载均衡的瓶颈;3.本发明中前置机与逻辑运算服务器间既可以通过局域网连接,也可以通过互联网连接,因而逻辑运算服务器在地理位置上可以分开设置,以充分利用网络带宽。


附图1为本发明实施例二的结构示意图;附图2为本发明实施例三的结构示意图。
具体实施例方式
下面结合附图及实施例对本发明作进一步描述实施例一一种多客户端互动的负载均衡方法,通过多个客户端、一台前置机和多个逻辑运算服务器以及它们之间的连接实现,包括下列步骤根据预计的负载流量设定使用的逻辑运算服务器的个数,把其余的逻辑运算服务器设定为备用逻辑运算服务器,把系统负载根据逻辑范围分配到多个逻辑运算服务器上,并把各个逻辑运算服务器的状态信息存储在前置机内;如果有新接入的客户端,则由其向前置机发出请求,如果原有客户端的交互信息超出某一逻辑运算服务器的控制范围,则由该逻辑运算服务器将其请求交给前置机,由前置机根据请求信息找到相应的逻辑运算服务器;
判断该逻辑运算服务器是否在最大负载运转,如是,启用备用逻辑运算服务器,缩小原逻辑运算服务器的控制范围,将其余的范围交由备用逻辑运算服务器控制,并移交相应的客户信息及连接,由前置机重新确定客户端的请求所对应的逻辑运算服务器;建立客户端与该逻辑运算服务器的直接连接,成功后断开客户端与前置机的连接,更新前置机中逻辑运算服务器的状态信息;上述过程中,如果没有备用逻辑运算服务器或者连接失败,则返回相应的失败信息;其中,对于新接入的客户端请求,如果连接返回失败信息,则由前置机控制连接其他的逻辑运算服务器,同时向客户端发送当前逻辑运算服务器忙,更换其他服务器的信息;对于原有客户端的交互信息超出某一逻辑运算服务器的控制范围时,如果试图连接对应逻辑运算服务器时返回失败信息,则前置机控制客户机返回原来的逻辑运算服务器,并向客户机发送相邻区域忙的信息。
实施例二如附图1所示,一种多客户端互动的负载均衡系统,包括客户机、前置机和逻辑运算服务器,其中前置机由一台服务器构成,前置机与每个逻辑运算服务器之间分别连接,每一客户机可以分别与前置机和逻辑运算服务器建立连接,所述前置机内存储有每个逻辑运算服务器的状态信息,所述逻辑运算服务器的状态信息包括最大负载量、现有负载量、逻辑控制范围和逻辑位置。
本实施例中,前置机可以采用一台服务器,操作系统为稳定的网络系统,如Windows NT/2000/XP,Redhat linux,FreeBSD等,物理上与其配合的逻辑运算服务器连接,组成一个服务器群组;逻辑运算服务器采用高档PC或者专用的服务器,运算平台可以采用各种类型的网络操作系统,如,Linux,Windows NT等,机器数量根据逻辑运算量、机器配置以及单台服务器的逻辑运算能力成正比。
如果有大的数据量同步,可以采用数据同步策略以保证数据协调运转,在进行大的数据储存时也可以使用数据库进行储存,可以采用的数据库为Oracal,MS SQL,Sybase等高可靠性、高性能的网络数据库。
实施例三参见附图2所示,一种多客户端互动的负载均衡系统,用于进行网络游戏,包括客户机、前置机和逻辑运算服务器,前置机与每个逻辑运算服务器之间分别连接,每一客户机可以分别与前置机和逻辑运算服务器建立连接,所述前置机内存储有每个逻辑运算服务器的状态信息,所述逻辑运算服务器的状态信息包括最大负载量、现有负载量、逻辑控制范围和逻辑位置。
其中,前置机为一台服务器,使用下列配置PIII800 CPU,内存256MB,2GB HD,100/1000MB Inter/Pro网卡至少2块,采用Linux操作系统;逻辑运算服务器根据负载情况增减数量,使用下列配置PIII800 CPU×2,内存512MB,9.1GB HD,100/1000MB Inter/Pro网卡至少2块,采用Linux操作系统;逻辑运算服务器可以分成2-3个服务群,分别位于不同的地理位置,互相之间通过互联网连接;游戏数据采用Oracle数据库存储在前置机上。
附图中,以示意方式给出了各逻辑运算服务器的控制范围,如网络游戏发生在地球上,则每个逻辑运算服务器分别控制地球的一个区域,当客户机的游戏用户进入某区域时,通过前置机的指令,与对应控制该区域的服务器直接连接,进行游戏。
权利要求
1.一种多客户端互动的负载均衡方法,其特征在于通过多个客户端、一台前置机和多个逻辑运算服务器以及它们之间的连接实现,包括下列步骤把系统负载根据逻辑范围分配到多个逻辑运算服务器上,并把各个逻辑运算服务器的状态信息存储在前置机内;如果有新接入的客户端,则由其向前置机发出请求,如果原有客户端的交互信息超出某一逻辑运算服务器的控制范围,则由该逻辑运算服务器将其请求交给前置机,由前置机根据请求信息找到相应的逻辑运算服务器;判断该逻辑运算服务器是否在最大负载运转,如是,启用备用逻辑运算服务器,缩小原逻辑运算服务器的控制范围,将其余的范围交由备用逻辑运算服务器控制,并移交相应的客户信息及连接,由前置机重新确定客户端的请求所对应的逻辑运算服务器;建立客户端与该逻辑运算服务器的直接连接,成功后断开客户端与前置机的连接,更新前置机中逻辑运算服务器的状态信息;上述过程中,如果没有备用逻辑运算服务器或者连接失败,则返回相应的失败信息。
2.如权利要求1所述的负载均衡方法,其特征在于对于新接入的客户端请求,如果连接返回失败信息,则由前置机控制连接其他的逻辑运算服务器,同时向客户端发送当前逻辑运算服务器忙,更换其他服务器的信息;对于原有客户端的交互信息超出某一逻辑运算服务器的控制范围时,如果试图连接对应逻辑运算服务器时返回失败信息,则前置机控制客户机返回原来的逻辑运算服务器,并向客户机发送相邻区域忙的信息。
3.如权利要求1或2所述的负载均衡方法,其特征在于对于各逻辑运算服务器共同使用的逻辑信息,由一个数据库存储管理。
4.如权利要求1所述的负载均衡方法,其特征在于进行初始负载分配时,可以根据预计的负载流量设定使用的逻辑运算服务器的个数,把其余的逻辑运算服务器设定为备用逻辑运算服务器。
5.如权利要求1或4所述的负载均衡方法,其特征在于设定一个初始运行时间,经过该初始运行时间后,当2台或以上的逻辑运算服务器的负载明显很轻时,可以将其逻辑范围及连接的客户端合并到其中一个逻辑运算服务器上,更改前置机上的状态信息,把其余的逻辑运算服务器设定为备用逻辑运算服务器,使其进入待机状态。
6.如权利要求1或2或4所述的负载均衡方法,其特征在于所述的逻辑运算服务器可以分布在互联网的不同网段或不同地理位置,并通过互联网实现与前置机及客户端的互通。
7.一种多客户端互动的负载均衡系统,其特征在于包括客户机、前置机和逻辑运算服务器,其中前置机由一台服务器构成,前置机与每个逻辑运算服务器之间分别连接,每一客户机可以分别与前置机和逻辑运算服务器建立连接,所述前置机内存储有每个逻辑运算服务器的状态信息。
8.如权利要求7所述的负载均衡系统,其特征在于所述逻辑运算服务器的状态信息包括最大负载量、现有负载量、逻辑控制范围和逻辑位置。
9.如权利要求7所述的负载均衡系统,其特征在于所述前置机与逻辑运算服务器间的连接可以是局域网连接,也可以是互联网连接;所述的客户机与前置机和逻辑运算服务器间的连接是通过互联网的连接。
10.如权利要求7所述的负载均衡系统,其特征在于还可以包括存储公用逻辑信息的数据库,所述数据库可以位于前置机上,也可以设置单独的数据库服务器。
全文摘要
本发明公开了一种多客户端互动的负载均衡方法及系统,通过多个客户端、一台前置机和多个逻辑运算服务器以及它们之间的连接实现,其中系统负载被分配到多个逻辑运算服务器上,可以根据负载情况增减服务器数量,各个逻辑运算服务器的状态信息存储在前置机内,客户端根据前置机的指示直接建立与相应逻辑运算服务器的连接,前置机与各逻辑运算服务器可以通过局域网或互联网连接。本发明可以根据负载情况增加或减少投入运行的逻辑运算服务器的数量,实现负载均衡,应付突发的并发访问增加;且逻辑运算服务器在地理位置上可以分开设置,充分利用了网络带宽。
文档编号G06F13/14GK1367439SQ0211268
公开日2002年9月4日 申请日期2002年2月10日 优先权日2002年2月10日
发明者李 杰 申请人:苏州市蜗牛电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1