游戏后端数据库的组织方式

之前做的游戏,服与服之间并没有任何交流,所以当时在后台的架构上是比较简单的。如下图所示:

目前正在做的游戏,一开始也是按照这个来设计的。项目做了三分之二的时候,策划改了方案,加入实时PVP机制,考虑到一个服的同时在线人数可能不足以支撑各个阶段的玩家的实时匹配,所以将实时PVP这一块做成跨服实时PVP机制。而现有架构要做跨服实时PVP,需要加一个PVP服,每一个玩家上下线,逻辑服都需要向PVP服发对应的消息。类似于这样:

这样PVP服因为没有连接数据库,缺乏许多数据,很难应对策划的需求变化,于是在数据库与逻辑服之间加了一个DB缓存。考虑到每一个服一个数据库的设计在滚服,合服方面的数据迁移方面非常繁琐且容易出错,所以设计成物理数据库层不分服,在逻辑上进行分服,只需要在玩家表加一个所在服ID或直接服名即可以了。架构如下:

posted @ 2016-06-30 14:39  traits  阅读(581)  评论(0编辑  收藏  举报