【问题标题】:MongoDB Sharding and ReplicationMongoDB 分片和复制
【发布时间】:2021-06-01 21:03:26
【问题描述】:

我已经设置了 MongoDB 分片,现在我需要设置复制以确保可用性。我该怎么做呢?我目前有这个:

  • 2 个 mongos 实例在不同的数据中心运行
  • 2 个 mongod 配置服务器在不同的数据中心运行
  • 2 个 mongod 分片服务器运行在不同的数据中心
  • 所有通信都通过我的提供商设置的专用网络进行,该网络可跨数据中心使用

我是否只是在每台服务器上设置复制(通过为每个服务器分配一个辅助服务器)?

【问题讨论】:

  • 你关注了这个Deploy a Sharded Cluster 对于“完全”可用性,你需要每个至少 3 个 mongod 服务器(或 2 个服务加仲裁器)
  • 您是在谈论配置服务器、分片服务器还是两者兼而有之? @WernfriedDomscheit?编辑:哎呀,是的,我知道。另一个将在用于生产之前添加。
  • 建议每个分片都是HA的副本集。从 MongoDB v3.4 开始,配置服务器需要是副本集(请参阅 Sharded Cluster Components.
  • 配置服务器和分片服务器都必须是至少配置服务器的副本集,强烈建议使用 3 个服务器。对于分片,您应该至少有 2 个服务器和 1 个仲裁器(所谓的 PSA ReplicaSet - Primary、Secondary、Arbiter)。

标签: mongodb sharding mongodb-replica-set mongodb-cluster


【解决方案1】:

为了冗余,我会在 3 个 DC 中构建整个系统。 每个数据中心将拥有三台服务器,提供以下服务:

  1. 1x mongoS 在 Server1
  2. 1x 节点的配置服务器副本集在 Server1
  3. 1x 节点的 shard1 副本集在 Server2 上
  4. 1x 节点的 shard2 副本集在 Server3 上

所以,总共有 9 个节点(物理或虚拟)。

如果我们“失去”一个 DC,一切都会正常进行,因为我们在所有三个副本集中都拥有多数。

【讨论】:

    【解决方案2】:

    每个副本集中需要 3 台服务器以实现冗余。要么将第三个数据中心放入其中一个数据中心,要么获得第三个数据中心。

    • 配置副本集需要 3 台服务器。
    • 每个分片副本集需要 3 台服务器。
    • 您可以保留 2 只猫鼬。

    【讨论】:

      【解决方案3】:

      在阅读了 D. SM 和 JJussi 的建议后(顺便感谢一下),我将实施以下基础架构:

      • 3 个monogs 实例分布在不同的数据中心
      • 3 个配置服务器分布在不同的数据中心
      • 2 个分片和 2 个存储服务器,分布在不同的数据中心,每个分片都有一个仲裁器(暂时降低成本)

      再次感谢您的意见。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-03-26
        • 2013-11-12
        • 1970-01-01
        • 2017-08-29
        • 1970-01-01
        • 1970-01-01
        • 2021-08-21
        • 2017-05-26
        相关资源
        最近更新 更多