求推荐内存数据同步框架

xiven 2018-03-10 11:05:40
游戏实时数据结构比较复杂,读写频率高,性能要求很高,所以通常数据直接放置在游戏进程的内存中。 这样设计存在一个风险,就是服务器是有状态的,数据只存储于本地。这样服务器要无法做高可用,所以游戏一般怎么做高可用的?

我想到的是在内存操作的同时同步内存数据到远程内存服务器上,但没有找到合适的中间件
...全文
416 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zoeg 2018-03-13
  • 打赏
  • 举报
回复
根据游戏数据的特性做恰当的优化吧。比如: 不是任意两个玩家之间都会发生联动,比如两个玩家的虚拟位置相隔十万八千里,他们不可能在同一地图上出现,或者地图是分块处理的,那么首先对于地图数据可以分区处理。玩家自身的数据就用一个大型KV存储就好了。运行时通过zookeeper等集群协调服务,对数据和服务进行分治: 比如:地图服务器有N台,地图服务器根据自身的资源情况在zookeeper上和其他服务器协商,谁负责哪块地图,这样可以实现自动责任划分,一旦某台机器挂了,他原来分配的地图会空闲出来,其他服务器会“抢占”这个地图。一旦玩家跨地图行走,也会通过zookeeper找到新地图负责的服务器。 这样,原来庞大的游戏数据就以微服务的方式逐步分解为一个个很小的数据,小到一台服务器就可以全部搞定,然后拼凑在一起。 当然,这并不是万能的解决方案,只是抛砖引玉。
oyljerry 2018-03-10
  • 打赏
  • 举报
回复
这些应该都是游戏自己做的一些框架。
xiven 2018-03-10
  • 打赏
  • 举报
回复
而且你说的增量同步有支持吗?
xiven 2018-03-10
  • 打赏
  • 举报
回复
你的思路是定时同步数据到远程内存服务,这样的实现框架有吗?
oyljerry 2018-03-10
  • 打赏
  • 举报
回复
客户端定期同步数据。而且只上-传diff变化部分。

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧