54 views
Skip to first unread message

朱少军

unread,
Mar 29, 2019, 3:36:38 AM3/29/19
to skynet...@googlegroups.com
    各位Skyneter, 大家好, 最近公司游戏项目要把部分业务服务化, 我准备用skynet来开发, 但在结构上我不是很有信心, 希望各位有过经验的前辈指点一下
    先介绍一下我们游戏的情况, 我们的游戏是一个小局制的SLG游戏, 整个游戏有若干个副本组成, 每个副本的人数是固定的, 所有副本的数量最终还是由玩家的数量决定, 每个副本大概持续几天时间. 这样的话, 副本业务就要求可横向扩展. 由于初期只需要把副本业务服务化, 所以我初步设计了一下结构, 大致如下:
   
    
image.png
DuplicateGate
    是一个API入口唯一节点, 它起到负载均衡的作用. 它能通过副本唯一标示映射到副本所在的节点上
DuplicateManager
    这是一个副本服务节点(可横向扩展, 单机机器单个进程), 节点点中有若干个副本
DuplicateAgent
    这是副本服务节点中的单个副本服务, 它负责这个副本的所有逻辑

    我在DuplicateGate节点中启动了一个节点管理服务(Redis), DuplicateManager节点在启动的时候会向节点管理服务注册, 并且DuplicateManager节点在创建副本的时候, 也会把副本唯一标示和节点信息注册到节点管理服务中, 这样DuplicateGate节点在收到API请求的时候能根据各个副本唯一ID定位到副本所在的节点.
    设计比较简陋, 希望各位前辈多多指点, 我这个设计存在什么问题或者有没有更优雅的结构设计
Reply all
Reply to author
Forward
0 new messages