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

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

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种高性能大型多人在线角色扮演游戏服务器架构设计

一种高性能大型多人在线角色扮演游戏服务器架构设计摘要:大型多人在线角色扮演游戏(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)

docman126 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7042123103000003

1亿VIP精品文档

相关文档