mongoDB副本集

时间:2012-11-15 10:20:18

标签: mongodb replication

我试图理解MongoDB中副本集的概念。

举一个2个mongoDB实例A(主要)和B(次要)的简单例子。

如果我的客户很高兴地查询A我理解写入被复制到B但是如果服务器A变得无法访问会发生什么?

虽然在mongo复制方面,我可以看到B被选为新的主要,客户端如何知道现在将其查询引导到B而不是A?这一切都是在mongo内部完成的吗?

我问,因为我的客户端的配置有一个uri指向A而B没什么。这是正确的吗?

1 个答案:

答案 0 :(得分:3)

  
    

举一个2个mongoDB实例A(主要)和B(次要)的简单例子。

  

您不应将两个实例用作副本集的一部分。你应该有一个arbiter或另一个中学,以便进行选举。

请参阅here了解问题,here了解复制基础知识,here了解有关选举的信息。

  
    

如果我的客户很高兴地查询A我明白写入会被复制到B但是如果服务器A变得无法访问会发生什么?

  

服务应该failover服务器B成为主服务器。但是,对于两个实例,服务器B将无法将自己选为主要服务器,因为没有多数。

  
    

虽然在mongo复制方面,我可以看到B被选为新的主要,客户端如何知道现在将其查询引导到B而不是A?这一切都是在mongo内部完成的吗?

  

这通常通过驱动程序执行,因为驱动程序知道副本集配置。有关相关的驱动程序文档,请参阅here(取决于您使用的驱动程序)。

相关问题