django Mongo-db从主(主)到辅(从)的自动故障转移

时间:2014-02-07 06:04:29

标签: django mongodb

我在django中开发了一个web-app,并使用MongoDB作为后端。 我不知道如何为数据库进行自动故障转移。 我的要求是,假设当mongodb的主节点关闭时,django应该自动连接到辅助节点。

如何实现这一目标? 我找到了这个图书馆,https://github.com/brianjaystanley/django-failover 这是django 1.3,但我想要django 1.5

我需要更改哪些设置,或任何可用于救援的库?在地板上的任何解决方案?

由于

1 个答案:

答案 0 :(得分:2)

您不需要在您的应用程序中设置任何内容来处理此问题,并且您为库提供的链接不适合与MongoDB一起使用,因为它是一种关系后端解决方案。

这里的第一个案例是你实际上有一个MongoDB的Replica Set配置吗?我只能回答假设您,但链接值得阅读,因为您可能没有对MongoDB复制概念的核心理解。

将会解释的是,您的应用程序没有用于故障转移的辅助节点,实际发生的情况是副本集本身在其成员中选择哪个节点将成为主节点。

继续给出答案,您可以通过将Connection String设置为驱动程序来配置应用程序以处理故障转移。阅读该文档,您会发现除了其他有用的东西之外,您基本上还提供了一个主机名列表,它将成为副本集的成员。您不需要所有成员,但只需要成为种子列表,以便可以发现其他节点。这种情况无论如何都会以正确的选项发生,但最好让多个主机联系以获取该信息。这是一个示例:

mongodb://<Primary>,<Secondary>/<database>

你可能想看看MongoEngine,考虑到你可能有使用django的经验,并且它使用了你熟悉的建模概念,同时仍允许访问MongoDB功能。有一些关于从内存设置副本集连接的文档。