网络游戏管理系统中负载均衡技术的运用
[摘 要]针对网络游戏管理系统访问量巨大的问题,提出了运用基于LVS的代理服务器集系统,该系统加快了用户请求的响应速度,起到了负载均衡的作用,而且可以方便的进行伸缩,解决了单一代理服务器造成的Internet访问瓶颈问题。
[关键词]负载均衡技术;LVS;网络游戏管理系统;集
随着Internet的发展,网络游戏成为目前比较受欢迎的游戏模式,然而以往在单机游戏中由客户端程序处理的绝大多数逻辑,在网络游戏中都被转移到了服务器端。这其中包括游戏世界中的对象管理、战斗系统、技能系统、交易系统、任务系统、AI系统等等。面对大大增加的访问量,这就要求网络服务器需要具备提供大量并发访问服务的能力。对于提供大量负载的服务器来说,CPU、I/O处理能力很快会成为瓶颈。单纯提高硬件性能很难从根本上解决这个问题,因为单服务器的性能总是有限的。而且,网络请求具有突发性,当某个重大事件发生时,网络访问就会急剧上升,从而造成网络拥塞。
针对以上问题,我们采用集技术在应用系统中实现负载均衡来有效地解决,和传统的高性能服务器系统相比,集技术具有很高的性价比、可扩展性和可用。
一、LVS集介绍
LVS是由基于Linux操作系统的负载均衡服务器(LB)和基于任意支持TCP/IP平台的支撑服务器RS(RealServer)组成的高扩展性和高稳定性的虚拟服务器[1]。在LVS集中,服务器集的结构对用户是透明的,用户访问集提供的网络服务就像访问一台高性能、高可用的服务器一样。LVS集的通用体系结构如图1所示,主要由以下三部分组成:
(1)负载调度器(1oad balancer):它是整个集对外的前端机,负责将用户的请求发送到一组服务器上执行,但从用户角度来看,服务来自一个IP地址。
(2)服务器池(server poo1):客户端发出的服务请求经过负载均衡器处理以后转交到服务池,由真实服务器响应请求并返回数据。
(3)后端存储(backend storage):它为服务器池提供一个共享的存储区,这样可使服务器池很容易拥有相同的内容,提供相同的服务。
在调度器的实现技术中,IP负载均衡技术是效率最高的,LVS实现的基于IP负载均衡技术的三种虚拟服务器方法如下[2]:
(1)通过网络地址转换VS/NAT技术(Virtual Server via Network Address Translation)。NAT(Net Address Translation)技术最早是用来解决IPv4负载均衡服务器有哪些地址匮乏问题而提出的。在NAT工作方式下,一组真实服务器前有一个负载均衡器。用户通过VIP(Virtual IP,即负载均衡器的外部地址)访问服务时。
(2)IP隧道VS/TUN(Virtual Server via IP Tunneling)。利用IP隧道技术将请求报文封装转发给后端真实服务器,响应报文从真实服务器直接返回给客户。
(3)直接路由实现虚拟服务器的方法VS/DR(Virtual Server via Direct Routing)。这种方式要求负载均衡器和真实服务器通过网卡连接在一个不分断的局域网中,如通过交换机或者高速的HUB相连。
二、基于虚拟服务的中心服务器模型
在这种模型中,网络游戏管理系统中心服务器部分、完全基于Linux虚拟服务器(Linux Virtual Server,LVS)的方式实现,这也是我们目前所采用的方案,结构如图2所示。
(1)后台服务器(RS):在这里,RS中的任务并没有被细化。每个服务器(RS)都是有多个应用
逻辑单元,如有用户管理单元、充值管理模块、公告管理等模块,被BS选中的RS处理用户请求,并将结果返回给BS,在BS中将采用NAT工作方式。
(2)负载平衡器(BS):将来自用户的请求,按照某种调度策略(如轮循调度策略)分发,并作相应的包转换分发给RS进行处理,将来自于RS处理完的数据包,进行转换,返回给用户。
三、负载均衡技术的实现
采用VS/NAT方式实现网络游戏管理系统负载均衡的具体过程是:
(1)用户访问网络游戏管理集系统,其请求报文的目的地址是系统的负载均衡器地址。
(2)负载均衡器收到请求包后,检查其目的地址和端口号,根据虚拟服务器中的规则表,如果这个端口号对应于一个服务系统,那么根据预先设定的调度算法,从集中选择一个真实的服务器,并将这个连接记录在散列表中,然后将请求报文中的目的地址和端口改写为选中的真实服务器的地址和端口号,并将请求报文转发给服务器。
(3)真实服务器处理请求,发出响应报文。
(4)负载均衡器将响应报文中的源地址和端口号修改为系统的地址和相应的服务端口。
(5)向用户发送响应报文。
在负载均衡器上通过执行脚本VS-NAT.sh,完成负载均衡器所进行的设置。
四、结语
本文在网络游戏管理系统中运用了基于LVS的代理服务器集系统,从系统运行的结果来看,该系统加快了用户请求的响应速度,起到了负载均衡的作用,而且可以方便的进行伸缩。实践证明该系统有效地解决了单一代理服务器造成的互联网访问瓶颈问题,大大缓解了游戏后台的互联网访问压力。
参考文献:
[1] 郭全生,舒继武,毛希平,等.基于LVS系统的负载动态平衡设计与实现[J].计算机研究与发展,2004,41(6):923—929.
[2] 王晓楠.网络负载均衡系统的设计和实现[J].常熟理工学院学报,2005,19(2):116—1
20
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论