Cassandra:需要 2 个,但只需要 1 个还活着,需要 3 个副本,但只有 2 个确认写入

Cassandra: 2 required but only 1 alive & 3 replica were required but only 2 acknowledged the write

我在将数据写入Cassandra时遇到了两个错误,想知道它们之间的区别。

  1. 需要 3 个副本,但只有 2 个确认写入
  2. 需要 2 个,但只有 1 个存活

一致性级别为 LOCAL_QUORUM。

根据我的观察,当我遇到第一个异常时,我看到数据被写入其中一个节点,在第二个异常时,我没有在任何节点中看到数据。

我的观察是否正确,请帮助我。

在不知道集群拓扑和键空间复制因子的情况下,很难提供明确的答案。完整的错误消息+完整的堆栈跟踪也与了解有关。

为了LOCAL_QUORUM一致性需要3个副本来响应,这表明您在本地DC中有4个或5个节点——4或5的法定人数为3。

在第二种情况下,当本地 DC 中有 2 个或 3 个节点时,LOCAL_QUORUM 需要 2 个副本。是的,2 个节点的仲裁仍然是 2 个节点,这意味着如果任一节点出现故障,您的应用程序将无法容忍中断。因此,我们建议每个 DC 中至少有 3 个节点用于生产集群。干杯!