一旦掌握了Mongo的行为?

时间:2018-02-04 18:16:19

标签: mongodb nosql

考虑MongoDB中的下图

enter image description here

我有两个场景

场景1: -

路由器将写入调用指向master.Its写入master但是在它被复制到slave之前它会关闭(我正在使用 同步复制模式) 路由器会选择一个从站作为主站,还将上述请求写入两个从站吗?

场景2: - 路由器将写入调用指向主服务器。它写入掌握但随后网络链接b / w它和一个奴隶被打破(使用 同步复制模式) 路由器是否会选择另一个从站(连接到所有其他节点)作为主站并将上述请求写入从站?

1 个答案:

答案 0 :(得分:0)

让我们首先使用MongoDB术语:Primary而不是master和Secondary而不是slave。

  

场景1:路由器是否会选择一个从站为主站,并将上述请求写入两个从站?

次要可以成为主要的。如果当前主节点变为不可用,则副本集将保持选举以选择哪个辅助节点成为新主节点。另见Replica Set Elections

在方案1中,如果主服务器接受了在主服务器关闭之前辅助服务器未成功复制的写操作,则当节点重新加入副本服务器时,回滚将恢复前主服务器上的写操作。另见RollBacks During Replica Set Failover

您可以运行启用了日记功能的所有投票成员,并使用writeConcern majority来阻止回滚。另见Avoid Replica Set Rollbacks

  

场景2:路由器是否会选择另一个从站(连接到所有其他节点)作为主站并将上述请求写入从站?

这里有两个部分,第一部分是副本集选举。在这种情况下,因为小学和其中一个辅助人员仍占多数,所以不会举行选举。主要部分仍然是主要部分,并复制到其中一个辅助部分。

第二部分是关于数据的复制。辅助成员从sync source复制oplog并在异步过程中应用这些操作。辅助sync source可以根据ping时间和其他成员复制状态的变化根据需要自动更改。另请参阅Replica Set Data Synchronization

在方案2中,辅助服务器可能会将其同步源更改为其他辅助服务器。

您可能还发现以下内容: