Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在地理分布的MongoDB集群中分配新的主数据库?_Mongodb_Replication_Distributed_Database Replication_Master Slave - Fatal编程技术网

如何在地理分布的MongoDB集群中分配新的主数据库?

如何在地理分布的MongoDB集群中分配新的主数据库?,mongodb,replication,distributed,database-replication,master-slave,Mongodb,Replication,Distributed,Database Replication,Master Slave,我需要在不同的数据中心拥有MongoDB数据库。一个MongoDB数据库将是主数据中心的主数据库,另一个将是其他数据中心的从数据库。如果主数据中心中的主数据库将失效,我们如何在不同的数据中心分配新的主数据库?假设您指的是数据中心之间的分布式副本集,如果主数据库失效,其他节点将选择新的主数据库 如果您对应该成为新主节点的节点有偏好,那么可以为这种情况配置偏好 我建议您阅读MongoDB文档中关于的部分以了解更多信息。您是说在数据中心之间分发单个副本集吗?如果是的话,我认为这不是一个好主意。你为什么

我需要在不同的数据中心拥有MongoDB数据库。一个MongoDB数据库将是主数据中心的主数据库,另一个将是其他数据中心的从数据库。如果主数据中心中的主数据库将失效,我们如何在不同的数据中心分配新的主数据库?

假设您指的是数据中心之间的分布式副本集,如果主数据库失效,其他节点将选择新的主数据库

如果您对应该成为新主节点的节点有偏好,那么可以为这种情况配置偏好


我建议您阅读MongoDB文档中关于的部分以了解更多信息。

您是说在数据中心之间分发单个副本集吗?如果是的话,我认为这不是一个好主意。你为什么不这么认为?如果有人在美国向数据库中写入内容,我需要能够在欧洲以最小的延迟读取该值。在不同的数据中心拥有副本是个坏主意吗?副本集中的节点需要不断地在它们之间发送数据,以保持所有节点的更新。如果这种通信通过internet进行,可能会减慢整个副本集的速度,尤其是在执行写入操作时。如果您的数据需求非常重于读取而不是写入,那么可能不会那么糟糕。您可能希望将标记感知切分作为一种实践:但切分用于将数据分发到多个节点。这对很多阅读都没有帮助。我仍然需要能够在本地读取数据。我认为如果你坐在欧洲,阅读美国的数据是个坏主意。我不知道有什么其他方法可以在低延迟(本地)的情况下读取数据。Mongo很好,因为它允许您根据您的数据需求做出这样的决策。它很灵活。您需要决定是在分布在各大洲的单个复制集上的节点之间存在高抖动,还是在从其他大洲的节点进行实时读取时存在延迟。幸运的是,Mongo为您提供了选择。这是我找到的一份白皮书,但我还没有读过,它似乎涵盖了你必须做出决定的一些权衡:我希望它能有所帮助。