主节点是副本集中唯一接受写入操作的成员。MongoDB 在主节点上应用写入操作,然后在主节点的 oplog 上记录这些操作。从节点成员复制该日志,并将操作应用于其数据集。
在以下三节点副本集中,主节点接受所有写入操作。然后,从节点复制 oplog 以应用于其数据集。
点击放大
副本集的所有节点都可以接受读取操作。但是,默认情况下,应用程序将其读取操作定向到主节点。有关更改默认读取行为的详细信息,请参阅读取偏好(Read Preference)。
副本集最多只能有一个主节点。[1] 如果当前的主节点不可用,则将通过选举决定新的主节点。有关更多详细信息,请参阅副本集选举。
在以下 3 节点组成的副本集中,主节点变得不可用。此情况会触发选举,而该选举会在剩余的从节点中选取一个作为新的主节点。
点击放大
| [1] | 在某些情况下,副本集中的两个节点可能会暂时认为它们是主节点,但最多只能有其中一个节点能够完成具有 |