gpt4 book ai didi

node.js - mongoDB多实例或多数据库

转载 作者:行者123 更新时间:2023-12-02 21:24:33 25 4
gpt4 key购买 nike

我选择使用 docker 和 node-js 和 mongoDB 来制作游戏,并将我所有的游戏部分(战斗、聊天、资源等)设置到不同的服务器中,这样每个部分都会有自己的进程,因为例如我的资源服务器将运行很多,因为它将每秒对每个用户的资源进行所有计算,并将处理来自其他服务器的请求,例如用户是否有足够的资源来 build 建筑物,或者如果受到攻击,玩家将失去多少资源等.

对于我的 alpha 和 beta 版本,我计划运行一个服务器,它将运行我游戏的所有部分,但我现在这样做的方式是,每个部分都有自己的 mongodb 实例,所以我有 resourcesDB、mainDB (用户信息,登录信息和东西),所有实例都不会有很多集合,例如resourcesDB只有2个集合,资源集合,每个用户将有1个与资源相关的文档,以及将存储的日志集合所有用户的使用(建筑升级,战斗失败等)

我读过关于同一服务器上的多个实例,他们都说这不是最好的方法,因为它会影响我的性能,将来我计划将我的所有部分分成不同的服务器因此,如果需要,每个部分都会有自己的服务器和数据库服务器。

  • 我是否应该构建 1 个实例并在数据库级别将其分开?这意味着我将不得不从多个服务器连接到同一个实例,资源服务器将每秒更新所有用户的资源计数,将其与将更新数据库中部队状态的战斗服务器结合起来,为每场 war 进行更多开,我还会有聊天数据库,它会随着每条私有(private)消息或聊天消息而更新,这会导致任何问题吗?还是仅当我连接到单个数据库并在集合级别将其分开时才会导致问题?
  • 我是否有理由不继续创建多个实例?我读到如果在同一台服务器上使用多个实例,配置文件可能会出现问题,但我假设 docker 处理该部分。

  • 更新 - 我在这里找到了一个很好的答案: https://dba.stackexchange.com/questions/156811/mongodb-in-micro-services-structure/156984#156984

    最佳答案

    为您的应用程序使用微服务架构是个好主意,但我认为没有充分的理由分离数据库。 MongoDB 可以为您处理(分片)。此外,当您写入集合 B 时,MongoDB 不会阻止写入集合 A。如果您将应用程序分离到多个数据库,则很难进行备份和维护应用程序。

    您可以在此处阅读有关 MongoDB 的并发选项并了解 MongoDB 如何处理集合级别锁定。
    https://docs.mongodb.com/manual/faq/concurrency/

    关于node.js - mongoDB多实例或多数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40862507/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com