副本集

MongoDB 中的副本是一组mongod提供冗余和高可用性的进程。副本集的成员包括:

主服务器接收所有写操作。

主节点是副本集中唯一接收写入操作的成员。MongoDB 在主节点上应用写入操作,然后将操作记录在主节点的oplog上。辅助成员复制此日志并将操作应用于其数据集。

 

副本集的所有成员都可以接受读取操作。但是,默认情况下,应用程序会将其读取操作定向到主成员。有关更改默认读取行为的详细信息,请参阅Read Preference 。

辅助节点可以成为主节点。如果当前主节点不可用,副本集将举行选举以选择哪个辅助节点成为新的主节点。

在某些情况下(例如,当您有一个主节点和一个辅助节点,但成本限制不允许添加另一个辅助节点时),您可以选择向副本集添加仲裁器。仲裁器参与 主节点的选举,但仲裁器没有 数据集的副本,因此无法成为主节点。

仲裁者有且仅有1选举票。默认情况下,仲裁者具有 优先级0

副本集最多可以有一个主节点。 ]如果当前主节点不可用,则通过选举确定新的主节点。

在以下 3 个成员副本集中,主副本不可用。这将触发选举,从剩余的辅助副本中选出一个作为新的主副本。

新主节点选举图。在具有两个辅助节点的三成员副本集中,主节点变得不可访问。主节点丢失会触发选举,其中一个辅助节点将成为新的主节点

优先级 0 副本集成员

 priority 0成员是无法成为主成员无法触发 选举 的成员。

在许多情况下,您不需要将备用服务器设置为优先级 0。但是,在具有不同硬件或地理分布的副本集中优先级 0备用服务器可确保只有某些成员成为主服务器。

Hidden Replica Set Members

隐藏成员维护主节点数据集的副本 ,但对客户端应用程序不可见。隐藏成员适用于与副本集中其他成员使用模式不同的工作负载。隐藏成员必须始终是 优先级 0 成员,因此不能成为主节点。该db.hello()方法不显示隐藏成员。但是,隐藏成员可以在 选举中投票。

 

 

posted @ 2024-07-07 02:54  wongchaofan  阅读(6)  评论(0编辑  收藏  举报