分类: C/C++
2011-05-05 15:31:45
转载注:最近在思考一些架构的本质的东西,偶然看到这篇MMO的集群方案,感慨互联网后端服务架构是如此之相像。
1. LoginApp
即登录服务器, 它主要完成玩家帐号的验证, 同时它通过BaseAppMgr并向玩家发送一个SessionKey作为基础服务器(BaseApp)的登录密钥;同时LoginServer还向玩家发送服务器列表信息。
2. BaseApp
即基础服务器, 也称连接服务器,它还维持着一个客户端连接列表(用户列表), 这样它可以实现区域消息广播及通过BaseAppMgr实现世界聊天, 玩家信息查看等功能;它还负责消息的分发到CellApp进行处理,并把结果返回到客户端。
3. CellApp
即游戏服务器,它负责世界数据的加载,游戏逻辑的处理及世界对象的管理。在本架构中当为支线服务器。
4. DBMgr
用户服务器,它负责用户相关数据的存取。一般是用户登录选择角色后就获得角色所有相关数据给到MapServer, 并由MapServer定时保存角色的相关数据。
5. BaseAppMgr
基础服务器管理器,主要负责分配基础服务器给到客户端连接,同时它采用某种策略可以实现用户的均衡负载等。
6. CellAppMgr
支线服务器管理器, 它主要根据支线ID为基础代理对象分配支线服务器实体, 这样就可以实现与客户端的通信了。
7. DB
数据库服务器主要分为三个库来存取,AccountDB为玩家账户信息,CharacterDB为玩家角色相关信息,WorldDB为所胡的世界数据。