缓存架构思考

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gohuge/article/details/79878443

我们使用了两个后端框架分别使用在两个MMORPG游戏上面,用户量级都是几百万的,且把这两个框架定义为 二代框架和三代框架;

这里主要记录两款不同框架用户数据存放及使用的问题,为后续开发做好借鉴作用。

一、二代框架

二代框架采用的是Java语言编写,分中控,认证节点,IM节点,存储节点,网关计算节点,日志节点。后续扩展了全服结构的存储计算一体的 业务节点。

随玩家数量增加,网关和计算节点可以在一定量情况下扩展,到达一定量的时候就需要重新分配一个大区机组。

二代引擎的用户数据是存放在MySQL中的,玩家登录,数据会从数据库打捞至存储节点(也叫数据中心,简写DC),DC主要负责数据定时落地,先存放至

本地磁盘30分钟后写入数据库,用户在DC上的数据结构是未展开的二进制数据。

数据打捞至DC后,玩家正式登录的时候会从DC把数据拉到 网关计算节点(我们把它叫做DS),DS负责游戏的所有业务进行,DS和DS之间没有交叉性业务。

更多是通过DC管理并转发(三代框架优化了这里),DS的用户二进制数据5分钟就会传一次至DC。

二、三代框架

三代框架采用的是Erlang构建的集群,理论上数据库和计算节点可以随数据量及业务量的增加无限扩展。

扫描二维码关注公众号,回复: 2920911 查看本文章

它的构成为数据层,计算层,网关层,日志层,我们已经没有指定节点业务执行的情况了,集群允许你指定任何物理机执行指定层的业务。

在使用这个框架构建第二个应用时,用户数据的组织没有组织好,反而暴露了很多对这个框架使用的局限

猜你喜欢

转载自blog.csdn.net/gohuge/article/details/79878443