gpt4 book ai didi

couchbase - 为什么 Couchbase 推荐的最小节点数是三个节点?

转载 作者:行者123 更新时间:2023-12-04 11:05:13 28 4
gpt4 key购买 nike

对于 Cassandra,假设复制因子为 1(即数据集的两个副本),至少需要三个节点才能启用具有强一致性的写入。 Couchbase 似乎没有这个要求,至少我没有在任何地方找到它。尽管如此,Couchbase 仍然建议生产系统至少使用三个节点。

我发现的唯一动机是(1)双节点系统中的单节点故障将导致单点故障,以及(2)当扩展到第三个节点时,双节点系统需要更努力地工作,而不是三节点系统(我假设这是因为重新平衡)。

对我来说,没有一个动机特别引人注目:

理由(1)感觉有点像说两盘RAID-1没用,只有三盘RAID-6(一个数据,两个校验)可以接受。尽管如此,RAID-1 还是非常流行的(比三盘 RAID-6:es 更受欢迎),并且通常被认为是相对安全的。据推测,节点的丢失将导致管理员快速采取行动,因此风险应该是短暂的。

原因(2)对我来说似乎更加短暂。添加第三个节点时,两个节点需要更努力地工作,而不是添加第四个节点时。尽管如此,这只是一次问题,而且大多数应用程序的负载每天都会发生变化,可以完成重新平衡的拟合。

所以我想知道是否还有其他原因可以避免使用双节点 Couchbase 集群,假设两个节点能够很好地承载负载?

最佳答案

主要原因是少于三个节点时禁用自动故障转移 .这是为了防止出现“裂脑”情况。考虑两个节点,节点 A 和节点 B。如果一个节点不可达(由于网络问题),则:

  • 节点 A 无法访问节点 B,并且没有其他节点可以协商,因此他进行故障转移(从集群中删除 B 并提升他自己的副本)
  • 节点 B 无法访问节点 A,类似地,没有其他节点,因此他进行了故障转移(从集群中删除了 A)。

  • 任何仍然可以看到两个节点的客户端现在基本上都有两个独立的集群,它们都认为他们拥有整个数据集。

    基本上在这种情况下,您违反了 CAP 的一致性。

    出于这个原因,Couchbase 不会在少于三个节点的情况下执行自动故障转移,并且由于这是在生产系统中使用的推荐功能,因此您的集群中至少需要三个节点。

    Failover considerations有关更多详细信息,请参阅 Couchbase 管理指南中的章节。

    关于couchbase - 为什么 Couchbase 推荐的最小节点数是三个节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26659005/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com