游戏服务器有一个主逻辑服务器,处理大部分的游戏通用逻辑,角色、宠物、任务、道具等;还有一些全局性服务器,比如公会服务器和好友服务器。
主逻辑服务器的特点是逻辑多,运行的时候出事的概率高一些,而好友服务器、公会服务器之类逻辑简单,比较稳定。
目前的做法是主逻辑服务器会挂到一个数据缓存服务器上;像公会服务器会内嵌一个数据缓存服务器,就是公会服务器和缓存服务器只在一个进程内。这两者区别在哪里呢?前者是主逻辑服务器和缓存服务器各有一份相同的数据;而后者一个进程内就一份数据。
主逻辑服务器和数据缓存服务器分开的原因有二:
[1] 主逻辑服务器数据有改变时,可以快速得甩给缓存服务器,缓存服务器根据数据的重要性分不同的时间间隔进行持久化。为了主逻辑服务器当机尽量减少回档,建议数据改变时还是立刻向缓存服务器更新吧,回档太伤了。
[2] 如果服务器组有多台逻辑服务器,那数据缓存服务器独立出一台是必须,当服务器切换时,可以快速地从缓存服务器重新获取最新数据。