优先级 0 副本集成员

在本页面

priority 0成员是 无法成为primary 无法触发elections的成员。优先级为 0 的成员可以确认由w : <number>write concern发出的写操作。对于"majority"写问题,优先级 0 成员还必须是有表决权的成员(即members[n].votes大于0)以确认该写。无表决权的副本集成员(即members[n].votes0)不能有助于确认具有"majority"写关注的写操作。

除上述限制外,具有priority 0功能的辅助服务器充当普通辅助服务器:它们维护数据集的副本,接受读取操作并在选举中投票。

如果特定成员部署在远离主部署的数据中心中并因此具有更高的延迟,则可能希望使用priority 0配置副本集成员。它可能很好地满足本地读取请求,但由于其延迟,可能不是理想的执行主要任务的候选人。

对于这种情况,下图在左侧显示了一个数据中心,该数据中心托管了主节点和一个辅助节点,在右侧的数据中心中的主机托管了一个已配置为* priority 0 *防止其成为主节点的辅助节点。由于此设置,只有左侧数据中心的成员才有资格在选举中成为主要成员。

跨两个数据中心分布的 3 个成员副本集的示意图。副本集包含优先级为 0 的成员。

将此与副本集成员的默认优先级priority 1进行比较,其中此方案中的任何一个辅助节点都可以用作主要节点。有关更多信息,请参见跨两个或多个数据中心分布的副本集

优先级 0 个成员作为备用成员

具有priority 0的辅助服务器可以用作备用服务器。在某些副本集中,可能无法在合理的时间内添加新成员。备用成员保留数据的当前副本,以便能够替换不可用的成员。

在许多情况下,您无需将待机设置为* priority 0 *。但是,在具有各种硬件或geographic distribution的副本集中,*优先级 0 *备用数据库可确保仅某些成员成为主要成员。

对于具有不同硬件或工作负载配置文件的集合中的某些成员,*优先级 0 备用状态可能也很有价值。在这些情况下,请部署具有 0 优先级的成员,这样它就不能成为主要成员。还可以考虑为此使用hidden member

如果您的集合已具有七个投票成员,则还将成员配置为non-voting

Failover Considerations

将辅助节点配置为具有priority 0时,请考虑潜在的故障转移模式,包括所有可能的网络分区。始终确保您的主数据中心包含法定人数的投票成员和有资格成为主要成员的成员。

Example

要将辅助站点配置为具有priority 0,请参见防止中学成为小学