mongoDB-复制集仲裁节点

在某些情况下(例如您有一个主节点和一个次节点,但是成本限制禁止添加另一个次节点),您可以选择向副本集中添加仲裁节点。仲裁节点没有数据集的副本,因此不能成为主节点。然而,仲裁节点会参与主节点的选举。仲裁节点只有1张选票。

版本3.6的变化:在MongoDB 3.6中启动,仲裁节点的优先级为0。当您将一个副本集升级到MongoDB 3.6时,如果现有配置有一个优先级为1的仲裁节点,MongoDB 3.6将仲裁节点的优先级重新配置为0。

不要在同时部署了复制集的主节点或次节点的系统上运行仲裁节点。

若要添加仲裁节点,请参阅向副本集添加仲裁节点

例子

例如,在下面的具有2个数据承载成员(主节点和次节点)的副本集中,仲裁节点允许该集合拥有奇数个投票来打破平局:
mongoDB-复制集仲裁节点

阅读关注多数和三员PSA

对于3个成员的主-副-仲裁架构*:
如果您有一个具有主-次-仲裁(PSA)体系结构的三成员副本集,或者一个具有三成员PSA碎片的分片集群,那么如果任何数据承载节点发生故障,并且启用了对“多数”读问题的支持,那么缓存压力将会增加。
为了防止存储缓存压力固定使用三成员主-副-仲裁(PSA)架构的部署,您可以在MongoDB 4.0.3(和3.6.1+)中禁用read concern“majority”。有关更多信息,请参见禁用读关注多数

复制集协议版本和仲裁节点

对于下列MongoDB版本,pv1增加了与pv0(在MongoDB 4.0+中不再支持)相比的w:1回滚的可能性。

  • MongoDB 3.4.1
  • MongoDB 3.4.0
  • MongoDB 3.2.11 or earlier

参见复制集协议版本

安全

认证

当使用授权运行时,仲裁程序将与集的其他成员交换凭据以进行身份验证。MongoDB对身份验证过程进行加密,MongoDB身份验证交换在密码上是安全的。

因为仲裁节点不存储数据,所以它们不拥有用于身份验证的用户和角色映射的内部表。因此,登录授权**的仲裁节点的惟一方法是使用localhost异常。

通讯

仲裁节点和其他集合成员之间的惟一通信是:选举期间的投票、心跳和配置数据。这些交换没有加密。

但是,如果您的MongoDB部署使用TLS/SSL, MongoDB将加密副本集成员之间的所有通信。有关更多信息,请参见mongod和mongos的TLS/SSL配置

与所有MongoDB组件一样,在可信的网络环境中运行仲裁节点。