什么是推荐的MongoDb复制集(2个DC)配置,用于DC故障时的自动主选择

时间:2015-02-08 00:55:45

标签: mongodb replicaset

我需要在2个数据中心分发mongo节点。

我对容错表感到困惑:

会员人数= 4

选举新主要人员所需的多数= 3

4号是否意味着我需要总共5名投票成员,或者我可以拥有3名投票成员+ 1名优先级0隐藏成员?

例如:

  • DC1:P,H(优先级= 0)
  • DC2:S,S

如果DC1关闭,DC2会选择主要吗?

如果DC2关闭,我是否需要将H转换为仲裁者,否则它将保持为主?

基本上,如果某人可以为2个DC提供一些推荐的复制集配置,以确保在DC故障时自动进行主要选择(以最少的手动操作进行选择),那将会很棒。

提前致谢, Kaniska

1 个答案:

答案 0 :(得分:0)

  

数字4是否意味着我需要总共4个投票成员,或者我可以拥有3个投票成员+ 1个优先级0隐藏成员

优先级为0的成员是投票成员。优先级0表示节点不能成为主节点(并且不能触发选举)。

您的示例设置仅显示在两个数据中心之间平均分配的4个总节点。大多数仍然是3,因此,如果任一数据中心发生故障,副本集将不健康并变为只读(无主要)。

要创建2 DC设置,其中一个DC的故障将导致自动故障转移到另一个DC中的主设备,则必须在任一数据中心之外存在节点。由于所有节点在两个数据中心(以及奇数个节点)之间分配,因此至少一个数据中心具有大多数节点。如果该数据中心发生故障,则在占多数的数据中心关闭时,副本集无法自动恢复正常状态。鉴于这种情况,一种常见的模式是在两个数据中心之间平均分割节点,并且在两者之外都有一个仲裁器。