Mongodb 1个主2个辅助和2个仲裁器对于具有容错2的副本集的架构是否正确?

Mongodb 1个主2个辅助和2个仲裁器对于具有容错2的副本集的架构是否正确?,mongodb,replicaset,Mongodb,Replicaset,我需要容错2,我不想使用额外的服务器。我计划对每个副本集使用以下配置。每个mongodbX-X都是不同的服务器 DC1 (main): mongodb0-0 - primary mongodb0-1 - secondary DC2: mongodb0-2 - secondary, priority 0.5 mongodb0-3 - arbiter mongodb0-4 - arbiter 对吗?我找不到关于相同配置的任何讨论。是的 2表示您的两台服务器可以脱机,而不会导致无法选择新的主服务器

我需要容错2,我不想使用额外的服务器。我计划对每个副本集使用以下配置。每个mongodbX-X都是不同的服务器

DC1 (main):
mongodb0-0 - primary
mongodb0-1 - secondary

DC2:
mongodb0-2 - secondary, priority 0.5
mongodb0-3 - arbiter
mongodb0-4 - arbiter
对吗?我找不到关于相同配置的任何讨论。

是的

2表示您的两台服务器可以脱机,而不会导致无法选择新的主服务器

既然你有:

  • 1小学
  • 2名二等生
  • 2名仲裁员
这意味着,如果两台服务器关闭,将剩下三台服务器来选择一台主服务器,并且其中至少一台不是仲裁员。

是的

2表示您的两台服务器可以脱机,而不会导致无法选择新的主服务器

既然你有:

  • 1小学
  • 2名二等生
  • 2名仲裁员
这意味着,如果两台服务器关闭,将剩下三台服务器来选择一台主服务器,并且其中至少一台不是仲裁员。

是的

2表示您的两台服务器可以脱机,而不会导致无法选择新的主服务器

既然你有:

  • 1小学
  • 2名二等生
  • 2名仲裁员
这意味着,如果两台服务器关闭,将剩下三台服务器来选择一台主服务器,并且其中至少一台不是仲裁员。

是的

2表示您的两台服务器可以脱机,而不会导致无法选择新的主服务器

既然你有:

  • 1小学
  • 2名二等生
  • 2名仲裁员

这意味着如果有2个服务器退出,剩下的将有三个来选择初选,至少其中一个不会是仲裁人。

< P>这是真的,最多2个成员的失败仍然应该留下一个投票多数来选择一个5元副本集中的初等,但是还有一些其他的因素要考虑。 书面关注 副本中可用的数据承载成员的数量也会影响可确认的数据

例如,在配置两个仲裁器时,任何数据承载成员都处于关闭状态,这意味着无法满足
w:mostrict
写入问题。成员脱机可能有管理方面的原因(例如,如果您正在运行修复或可能在辅助服务器上),因此您可以在不影响应用程序可用性的情况下安全使用的最高写入问题将是
w:2

如果由于某种原因两个数据承载成员失败,您将只能满足单个节点的确认写入。在至少一个其他数据承载成员重新加入复制集之前,不再有任何复制

网络连通性 您的实际副本集成员可能没有问题,但如果DC1和DC2之间的连接丢失,则只有DC2有足够的投票成员来选择主副本集。这里的危险在于,DC2在您的配置中只有一个辅助成员,因此从技术上讲,此时您没有成员停机,但单个成员故障(DC2中唯一的数据承载成员的故障)可能会导致数据丢失

建议的配置 由于仲裁器没有任何写负载,因此数据承载成员最有可能出现故障或需要维护。添加两个仲裁器会使您看起来更具容错性,但需要注意的是,如上所述

更有力的建议是:

 DC1: primary, secondary  (priority: 2)
 DC2: secondary, secondary  (default priority)
 DC3: arbiter
在此配置中,任何两个数据承载成员都可能发生故障,或者您可能会失去整个数据中心的连接,并且仍然有一个主复制和正在进行的复制。DC1成员的较高优先级更倾向于将其作为副本主副本的候选对象(假设它们可用且是最新的)

如果您不希望有三个辅助设备,那么一个更简单的配置可以为您提供类似的故障切换好处(尽管只有一个容错节点):

DC1: primary (priority 3)
DC2: secondary (priority 2)
DC3: secondary (default priority)

这允许故障切换到DC1或DC2并继续复制,还保持了多数写入关注点的语义,以匹配大多数可用的副本集成员。

确实,如果最多有2个成员出现故障,仍应保留投票多数,以在5个成员的副本集中选择主副本,然而,还有一些其他因素需要考虑。

书面关注 副本中可用的数据承载成员的数量也会影响可确认的数据

例如,在配置两个仲裁器时,任何数据承载成员都处于关闭状态,这意味着无法满足
w:mostrict
写入问题。成员脱机可能有管理方面的原因(例如,如果您正在运行修复或可能在辅助服务器上),因此您可以在不影响应用程序可用性的情况下安全使用的最高写入问题将是
w:2

如果由于某种原因两个数据承载成员失败,您将只能满足单个节点的确认写入。在至少一个其他数据承载成员重新加入复制集之前,不再有任何复制

网络连通性 您的实际副本集成员可能没有问题,但如果DC1和DC2之间的连接丢失,则只有DC2有足够的投票成员来选择主副本集。这里的危险在于,DC2在您的配置中只有一个辅助成员,因此从技术上讲,此时您没有成员停机,但单个成员故障(DC2中唯一的数据承载成员的故障)可能会导致数据丢失

建议的配置 由于仲裁器没有任何写负载,因此数据承载成员最有可能出现故障或需要维护。添加两个仲裁器会使您看起来更具容错性,但需要注意的是,如上所述

更有力的建议是:

 DC1: primary, secondary  (priority: 2)
 DC2: secondary, secondary  (default priority)
 DC3: arbiter
在此配置中,任何两个数据承载成员都可能发生故障