Skip to content
i0gan edited this page Apr 10, 2024 · 1 revision

存在的问题:

  1. 数据库选择问题: 采用redis做为数据存储,会导致内存过大的情况。采用mysql作为数据存储会导致IO以及查询效率不如redis,在项目中途我们引入了mongodb作为玩家游戏数据存储。mysql作为玩家账号存储,redis作为服务之间的缓存。

  2. 弹性伸缩还尚未完全支持 在运行时,暂时还不能支持弹性添加节点和删除节点,只能在运行之前,配置好各服务节点数量。

  3. cpu、内存、网络还未严格优化 在某些服务节点上,由于轮询频率过高,cpu占用比较大,内存中加载很多插件,导致内存占用有些高。网络IO去除无用的rpc,避免发送空包的现象。

  4. 各服务节点之间代码冗余高 在节点部分重复代码多,比如节点服务端启动,以及连接部分,重复代码比较多,之后会引入一个父类将其这些节点代码集中起来,节点类继承于该类降低代码冗余度。

  5. 客户端的rpc和服务端的rpc还未很方便的支持。 由于将很多功能拆分到不同节点上进行工作,由代理节点进行分发到不同工作节点,让工作节点与玩家或其他节点很方便的进行rpc是非常有必要的。

工作计划: 引入MongoDB作为主要的数据存储。 弹性伸缩的支持 CPU、内存、网络优化 服务节点QPS测试 各对象之间的RPC简单化调用 文档完善

Clone this wiki locally