在生产中设置mongo复制

时间:2016-12-09 21:40:04

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

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

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

我还有其他一些问题:

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

  2. 让我们说主要版本下降1小时,写入次数为2,000次。当它恢复时,主要如何更新。我需要一个脚本吗?

  3. 我正在尝试使用烧瓶PyMongo

2 个答案:

答案 0 :(得分:0)

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. 使用服务发现。领事等,ZooKeeper和doozerd值得探索。
  3. 如果失败然后返回,mongodb节点将从其他节点接收最新数据 - 这就是副本集的作用。

答案 1 :(得分:0)

我最终在我的本地机器上测试了这是我找到的。

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