【问题标题】:Setting up mongo replication in production在生产环境中设置 mongo 复制
【发布时间】:2016-12-12 23:45:53
【问题描述】:

如何在生产环境中设置 mongodb 复制?我开始使用 this template 的云形成,但它在中途崩溃。我想设置 mongo 使其具有一个主副本和两个副本。

我还没有找到关于如何设置 Mongo 复制的好教程。

我还有其他一些问题:

  1. 如果我有三个 Ec2 实例,每个实例都带有 mongo 并且主实例发生故障,故障转移如何工作。另一个实例成为主实例,但我的客户端 PyMongo 和 Scala Mongo 如何知道新主实例的 IP 地址。

  2. 假设主服务器宕机 1 小时,并且有 2,000 次写入。当它备份时,主节点如何更新。我需要为此编写脚本吗?

我正在尝试用烧瓶 PyMongo 做到这一点

【问题讨论】:

    标签: mongodb amazon-web-services amazon-ec2 flask pymongo


    【解决方案1】:

    我最终在我的本地机器上进行了测试,这就是我发现的。

    1. 故障转移由客户端完成,在Mongo URI 中指定所有复制以及 PyMongo 连接到它的时间。他检查哪一个是主要的,然后写给那个。
    2. 当数据库备份时,它们都会同步以匹配所有数据库中的相同记录。

    【讨论】:

      【解决方案2】:

      Readthedocs 有关于在不同平台(包括 AWS EC2)上设置 MongoDB 集群的分步手册: https://mongodb-documentation.readthedocs.io/en/latest/ecosystem/tutorial/install-mongodb-on-amazon-ec2.html#deploy-a-multi-node-replica-set

      要为您的客户提供有效的 mongo 实例,您可以采用几种不同的策略。例如:

      1. 设置 Route53 故障转移。 Route53 将监控主节点的健康实例,并在发生故障时将 DNS 记录更改为指向辅助节点。
      2. 使用服务发现。 Consul 等,ZooKeeper 和 doozerd 值得探索。

      万一发生故障然后又回来,一个 mongodb 节点将从其他节点接收最新数据——这正是副本集所做的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-14
        • 1970-01-01
        • 2023-04-09
        • 2015-05-30
        • 2015-04-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多