游戏服务器端所完成的事(四).docVIP

  • 4
  • 0
  • 约1.44万字
  • 约 18页
  • 2017-05-14 发布于江苏
  • 举报
游戏服务器端所完成的事(四)

游戏服务端所完成的事情(四) 游戏世界状态的维护方式 2.1数据服务的定位   游戏世界的状态可以简单分为两个部分,一部分是需要存档的,比如玩家数据;一部分是不需要存档的,比如场景状态。   对于访问较频繁的部分,比如场景状态,会维护成纯内存数据;对于访问较不频繁的部分,比如玩家存档,就可以考虑维护在第三方。这个第三方,就是数据服务。   数据服务与之前所提到的场景服务、IM服务等都属于应用层的概念。数据服务通常也会依赖于一种基础设施抽象,那就是缓存。   传统MMO架构中,数据服务的概念非常模糊。   我们还是先通过回顾发展历史的形式来厘清数据服务的定义。回到场景进程的发展阶段,玩家状态是内存中的数据,但是服务器不会一直开着,因此就有了存盘(文件或db)需求。但是随着业务变复杂,存盘逻辑需要数据层暴露越来越多的存储API细节,非常难扩展。因此发展出了Db代理进程,场景进程直接将存档推给Db代理进程,由Db代理进程定期存盘。   这样,存储API的细节在Db代理进程内部闭合,游戏逻辑无须再关注。场景进程只需要通过协议封包或者RPC的形式与Db代理进程交互,其他的就不用管了。   Db代理进程由于是定期存盘,因此它相当于维护了玩家存档的缓存。这个时候,Db代理进程就具有了数据服务的雏形。   跟之前的讨论一样,我在这里又要开始批判一番了。      很多团队至今,新立项的项目都仍然

文档评论(0)

1亿VIP精品文档

相关文档