Comment on page
副本集成员
在下图的三成员副本集中,主节点接受所有写操作。然后从节点复制oplog应用至它们的数据集中。
Diagram of default routing of reads and writes to the primary.
下图的三成员副本集有两个副本成员。从节点复制主节点的oplog并应用到它们的数据集上。
Diagram of a 3 member replica set that consists of a primary and two secondaries.
从节点可以成为主节点。如果当前主节点不可用,副本集会发起选举来选择哪个从节点成为新的主节点。
您可以出于特殊目的来配置从节点成员。您可以配置一个从节点用于:
在某些情况下(例如有一个主节点和一个从节点,但由于成本约束无法添加另一个从节点),你可以在副本集中添加一个仲裁节点。仲裁节点没有数据集的副本,并且不能成为主节点。然而,仲裁节点可以参与主节点选举。一个仲裁节点只有
1
票选举权。3.6版本的变化:从MongoDB 3.6版本开始,仲裁节点优先级为0。当您升级一个副本集至3.6版本时,如果当前配置中有一个优先级为
1
的仲裁节点,则MongoDB 3.6会将仲裁节点的优先级重新配置为0
。重要
不要在同时承载副本集的主节点或副本成员的系统上运行仲裁节点。
[2] | 在 某些场景下, 一个副本集中的两个节点可能会认为它们是主节点,但至多,他们中的一个将能够完成写关心级别为[
{ w: "majority" }
](https://docs.mongodb.com/manual/reference/write-concern/#writeconcern."majority")的写操作。 可以完成 [{ w: "majority" }
](https://docs.mongodb.com/manual/reference/write-concern/#writeconcern."majority") 写的节点是当前主节点,而另一个节点是原先的主节点,通常是由于网络分区导致它还没有意识到自己的降级。当这种情况发生时,连接到原先主节点的客户端尽管已经请求了读偏好primary
,但可能还会观察到过时的数据,并且对原先主节点新写的操作最终将回滚掉。随附副本集主节点、从节点和仲裁节点的参看链接:
译者:李正洋
最近更新 2yr ago