【发布时间】:2017-04-13 05:59:54
【问题描述】:
我选择使用带有 node-js 和 mongoDB 的 docker 来制作游戏,并将我的所有游戏部分(战斗、聊天、资源等)设置到不同的服务器中,这样每个部分都会有自己的进程,例如我的资源服务器将运行很多,因为它将每秒计算每个用户的资源,并将处理来自其他服务器的请求,例如用户是否有足够的资源来建造建筑物或玩家将失去多少资源如果被攻击等。
对于我的 alpha 和 beta 版本,我计划运行一个服务器,它将运行我游戏的所有部分,但我现在这样做的方式是,每个部分都有自己的 mongodb 实例,所以我有resourcesDB, mainDB (users info, login info and stuff), 所有实例都不会有很多集合,例如resourcesDB只有2个集合,资源集合,每个用户将有1个与资源相关的文档和日志集合这将存储所有用户的使用情况(建筑升级、战斗失败等)
我读过关于同一服务器上的多个实例,他们都说这不是最好的方法,因为它会影响我的性能,将来我计划将我的所有部分分开到不同的服务器,所以如果需要,每个部分都有自己的服务器和数据库服务器。
我是否应该构建 1 个实例并在数据库级别将其分开?这意味着我将不得不从多个服务器连接到同一个实例,资源服务器将每秒更新所有用户的资源计数,将其与将更新数据库中部队状态的战斗服务器结合起来,为每场战争进行更多开,我还会有聊天数据库,它会随着每条私人消息或聊天消息而更新,这会导致任何问题吗?还是只有当我连接到单个数据库并在集合级别将其分开时才会导致问题?
我是否有理由不继续创建多个实例?我读到如果在同一台服务器上使用多个实例,配置文件可能会出现问题,但我假设 docker 会处理该部分。
更新 - 我在这里找到了一个很好的答案:https://dba.stackexchange.com/questions/156811/mongodb-in-micro-services-structure/156984#156984
【问题讨论】:
标签: node.js mongodb docker docker-compose