高性能游戏服务器架构设计,一种高性能大型多人在线角色扮演游戏服务器架构设计.doc...

一种高性能大型多人在线角色扮演游戏服务器架构设计

一种高性能大型多人在线角色扮演游戏服务器架构设计摘要:大型多人在线角色扮演游戏(Massively Multiplayer Online Role Playing Game,以下简称MMORPG)一般采用客户端/服务器结构,服务器架构设计是成功开发一款MMORPG的关键,本文对高性能MMORPG服务器架构设计进行了深入地研究。一个MMORPG一般会开设多个区供玩家进行游戏,一个区会包括一组服务器,本文设计出的服务器组架构包括LoginServer、WorldServer、WorldGameServer、GameServer和DBServer等服务器。

关键词:MMORPG;服务器;架构;高性能

中图分类号:TP311.52 文献标识码:A 文章编号:1007-9599 (2012) 09-0000-02

一、前言

MMORPG的结构分为客户端与服务器端,客户端展现游戏实时画面,并且将玩家在客户端逻辑请求的操作发往服务器端,服务器端负责响应所有客户端的连接请求,处理客户段的逻辑请求,并将结果返回给客户端以使游戏在客户端继续进行。客户端与服务器通过网络数据包交互和完成每一个游戏逻辑,游戏绝大部分逻辑都是在服务器端负责处理,为了保证海量用户同时进行游戏,并且体验良好,优秀服务器架构起到了非常关键的作用。

二、服务器架构设计

(一)服务器架构不同分类

服务器组架构有多种,其中使用最广泛的有两种:一种是带路由服务器的服务器架构;另一种是不带路由服务器的服务器架构,两种方案各有利弊。本文设计出了另一种新型的设计方案:一个世界服务器作为整个服务器组的中心,一切请求通过中心服务器转发,呈星形结构。每个其他服务器只负责处理自己的逻辑。这种方案做到了每个服务器各司其职,职责清晰,并且根据游戏玩家数量的改变来动态的增减服务器的数量。

(二)服务器架构设计

根据MMORPG规模大小和设计不同,每组服务器中服务器种类和数量也是不同的。本文中的设计是星形结构服务器组架构,如图1所示。

图1 星形服务器架构设计

星形服务器架构设计虽然增加了服务器设计的难度,并且服务器的数量也相应的增加了,但却带来了其它架构所不具有的优点,具体优点为:

1.WorldServer所有其他服务器的管理者,可以对所有其他服务器进行调度,使得整体结构非常清晰,各个服务器各司其职,也利于开发过程中的工作划分。

2.WorldServer只负责调度、数据包数据解析、数据加解密、数据超时处理,不做任何逻辑处理,这样主要是可以过滤掉错误和非法的数据包,提高其他服务器的处理数据的效率。

3.GameServer可以随时增加,WorldGameServer和GameServer中的复杂逻辑可以随时提取出来做成单独服务器,有效提高效率和扩展性。

星形架构虽然有上面的三个优点,但是还是需注意两个可能导致负面效果的情况:一个是如何避免中心管理者身份WorldServer的高负载瓶颈问题,第二个是由于不同的问题导致的WorldServer出现故障,导致整组服务器瘫痪,无法对外提供服务问题。上述两个问题可以采用Nginx负载均衡技术加以解决。Nginx负载均衡技术就是同时存在多个WorldServer,比如一组服务器可以配置两台或更多WorldServer。通过对Nginx进行简单的配置,就可以达到实时的同步两台或多台WorldServer,当某一台负载较大或者宕机时,自动切换到正常运行的WorldServer,从而保证所有客户端都不会掉线。从图1的服务器架构图可以看出,一组服务器包括LoginServer、WorldServer、WorldGameServer、DBServer和多个GameServer等多种服务器。一组服务器一般至少配置两台WorldServer和一台Nginx服务器,因为对于MMORPG运营来说稳定性是至关重要的。在游戏运营中所面临的潜在的风险是服务器宕机等突发事件。需配置两台WorldServer和一台Nginx服务器可以组成一个负载均衡,可以有效的防治服务器宕机带来的风险。下面是对各种服务器主要功能和服务器之间数据交互的详细解释。

(1)LoginServer

LoginServer主要功能是对玩家账号是否合法进行校验,只有通过校验的账号才能成功登录游戏界面,运行游戏程序。从架构图可以看出,LoginServer会连接WorldServer和AccoutDB。AccoutDB玩家账号信息数据库,数据库中存放玩家的具体信息,比如账号和密码等。玩家登录游戏的基本流程是,客户端填写好账号和密码,然后将账号和密码发送到LoginServer服务器验证账号和密码,如果验证通过,LoginServer服务器将发送请

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值