0

我需要将 mongo 节点分布在 2 个数据中心上。

我对容错表有点困惑:

成员数 = 4

选举新小学所需的多数 = 3

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

例如 :

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

如果 DC1 出现故障,DC2 会选择主节点吗?

如果 DC2 关闭,我是否需要将 H 转换为 arbitrer 或者它将保持 Primary?

从本质上讲,如果有人可以为 2 个 DC 提供少量推荐的副本集配置,以确保在 DC 故障时自动进行主选择(以最少的手动操作进行选择),那就太好了。

在此先感谢,卡尼斯卡

4

1 回答 1

0

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

优先级为 0 的成员是投票成员。优先级 0 意味着节点不能成为主节点(也不能触发选举)。

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

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

于 2015-02-08T06:39:24.153 回答