大型端游技术架构

先来张图吧,带网关服务器的服务器组架构

带网关服务器架构虽然加大了服务器的设计复杂度,但却带来了以下几点好处:

  • 作为网络通信的中转站,负责维护将内网和外网隔离开,使外部无法直接访问内部服务器,保障内网服务器的安全,一定程度上较少外挂的攻击。
  • 网关服务器负责解析数据包、加解密、超时处理和一定逻辑处理,这样可以提前过滤掉错误包和非法包
  • 客户端程序只需建立与网关服务器的连接即可进入游戏,无须与其他游戏服务器同时建立多条连接,节省了客户端和服务器程序的网络资源开销
  • 在玩家跳转服务器时,不需要断开与网关服务器的连接。玩家数据在不同服务器间的切换是内网切换,切换工作瞬间完成,玩家几乎察觉不到,这保证了游戏的流程性和良好用户体验

在享受网关服务器带来的上述好处的同时,还需要注意以下可能导致负面效果的两个情况。

  • 网关服务器在高负载情况下成为通信瓶颈
  • 网关的单节点故障导致整组服务器无法对外提供服务

服务器角色说明及通信原理

  • LoginGate:主要负责在玩家登录时维护客户端与LoginServer之间的网络连接与通信,对LoginServer和客户端的通信数据进行加解密、校验
  • LoginServer:主要功能是验证玩家的账号是否合法,只有通过验证的账号才能登录游戏。从架构图可以看出,DBServer和GameServer会连接LoginServer。玩家登录基本流程是,客户端发送账号和密码到LoginServer验证,如果验证通过,loginserver会给玩家分配一个SessionKey,LoginServer会把这个Sessionkey发送给客户端、DBServer和GameServer,在后续的选择角色以后进入游戏过程中,DBServer和GameServer将验证Sessionkey合法性,如果和客户端携带的Sessionkey不一致,将无法成功获取到角色或者进入游戏
  • GameGate:主要负责用户游戏过程中维持GS与客户端之间的网络连接和通信,对GS和客户端的通信数据进行加解密和校验,对客户端发往GS的用户数据进行解析,过滤错误包,对客户端发来的一些协议作简单的逻辑处理,其中包括游戏逻辑中的一些超时判断。在用户选择角色过程中负责位置DBServer与客户端之间的网络连接和通信,对DBServer和客户端的通信数据进行加解密和校验,对客户端发往DBServer的用户数据做简单的分析
  • GameServer:主要负责游戏逻辑处理。
  • DBServer:主要的功能是缓存玩家角色数据,保证角色数据能快速地读取和保存。

 

posted @ 2016-11-24 18:12  梦轻尘  阅读(617)  评论(0编辑  收藏  举报