django Mongo db从主(主)到辅助(从)的自动故障切换

django Mongo db从主(主)到辅助(从)的自动故障切换,django,mongodb,Django,Mongodb,我在django开发了一个web应用程序,并使用MongoDB作为后端。 我不知道如何为数据库执行自动故障切换。 我的要求是,假设mongodb的主节点关闭时,django应该自动连接到辅助节点 如何做到这一点? 我找到了这个图书馆, 这是Django1.3的,但我想要Django1.5的 我需要更改哪些设置,或任何可用于救援的库?地板上有什么解决方案吗 谢谢您不需要在您的应用程序中设置任何东西来处理此问题,您为库提供的链接不适合用于MongoDB,因为它是一个关系后端解决方案 这里的第一个案例

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

如何做到这一点? 我找到了这个图书馆, 这是Django1.3的,但我想要Django1.5的

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


谢谢

您不需要在您的应用程序中设置任何东西来处理此问题,您为库提供的链接不适合用于MongoDB,因为它是一个关系后端解决方案

这里的第一个案例是,您是否实际拥有MongoDB的配置?我只能假设您对此进行了回答,但该链接值得一读,因为从您的问题来看,您可能对MongoDB复制概念没有核心理解

这里要解释的是,应用程序没有要故障切换到的辅助节点,实际发生的是复制集本身在其成员中选择哪个节点将成为主节点

继续回答这个问题,您可以通过将应用程序设置为驱动程序来配置应用程序以处理故障切换。通读这些文档,您会发现,除了其他有用的东西之外,您基本上提供了一个主机名列表,这些主机名将成为复制集的成员。您不需要所有成员,只需要足够的成员作为种子列表,以便可以发现其他节点。使用正确的选项,这种情况无论如何都会发生,但最好有多个主机可以联系,甚至可以获取这些信息。以下是一个示例:

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

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

谢谢您提供的信息。是的,我有一套复制品。1个一级、1个二级、1个仲裁员。在pymongo中,当我给出一个连接字符串以发现其中一种模式时,这很好。但事实上,问题出在django身上。在django的settings.py中,我给出了连接字符串(URI为3个节点),如果主节点失败,它不会自动转移到另一个节点。您的问题很可能是如何设置连接。有关详细信息,请按照答案中连接字符串的链接进行操作。不确定,但您设置的可能不是您需要的。您应该有一个连接字符串,其中包含主节点主机名和辅助节点主机名,正如答案中所述,仲裁器在这里没有帮助。听起来,这些“单独”定义的方式将用于实现一些关系故障转移。那不是你想要的。您只需要一个如上所述的连接。