1、数据服务器详细设计
数据服务器在设计上采用三个层次的数据同步,实现玩家数据的高速获取和修改。
数据层次上分为:内存数据,redis数据,mysql数据
设计目的:首先保证数据的可靠,防止数据丢失,保证数据完整。然后实现数据的高速访问,减少由玩家数量增加对数据服务器性能造成的影响。最后实现运维数据的入库,以及数据持久化。
在这个基础上数据服务器不再是一个单一服务器,它涉及到与其他服务器之间的交互。
数据服务器的核心在于redis数据层面。通过redis加快玩家数据的快速拉取。
内存数据是直接与逻辑服务器进行交互的,因此内存数据划分到逻辑服务器进行管理,redis数据划分为数据服务器管理,mysql数据是对redis数据库的备份和同步。
主要流程,数据服务器启动时先从mysql数据库加载所有的活跃玩家相关数据到redis数据库中,逻辑服务器与数据服务器之间的交互都是通过国过redis数据进行操作。Redis数据库回写到mysql可以通过回写进程实现。
图 1 数据服务器数据扭转流程图
1.1 数据服务器主进程
数据服务器主进程核心是对redis的操作,通过redis数据库实现数据的高速存储。因此,数据服务器的核心是保证在玩家数量大较大的情况下对玩家数据的增删改都能维持在一定的时间效率内。
针对于redis数据库本身,可以考虑实现redis的主从库