Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cassandra节点在本地仲裁范围内失败,但客户端仍收到失败的CL错误_Cassandra - Fatal编程技术网

Cassandra节点在本地仲裁范围内失败,但客户端仍收到失败的CL错误

Cassandra节点在本地仲裁范围内失败,但客户端仍收到失败的CL错误,cassandra,Cassandra,我有一个多DC(AWS区域)Cassandra集群。客户端程序连接到具有4个节点且RF=2的其中一个区域。但是,当该DC/区域中只有一个节点停机时,客户端会不断收到以下错误: (com.datastax.driver.core.exceptions.UnavailableException:没有足够的副本可用于在一致性本地仲裁(需要2个副本,但只有1个活动副本)) 详情如下: 客户端程序最初是Jmeter。但我用cqlsh进行了验证,得到了同样的错误 错误(见上文)大约50%的时间都会发生,读

我有一个多DC(AWS区域)Cassandra集群。客户端程序连接到具有4个节点且RF=2的其中一个区域。但是,当该DC/区域中只有一个节点停机时,客户端会不断收到以下错误:

(com.datastax.driver.core.exceptions.UnavailableException:没有足够的副本可用于在一致性本地仲裁(需要2个副本,但只有1个活动副本))

详情如下:

  • 客户端程序最初是Jmeter。但我用cqlsh进行了验证,得到了同样的错误
  • 错误(见上文)大约50%的时间都会发生,读写都会发生
  • 因为有4个节点,RF=2,我相信LOCAL_QUOROM=2,意思是 本地环最多可以容忍2个节点发生故障
  • 但只有一个被击倒了。我用“nodetool状态”进行了验证
  • 其他一致性级别工作正常(例如,二、三、法定人数)
  • 我们对集群使用v节点
我很难理解发生了什么:一个本地环应该有一个完整的数据副本。RF=2应为我提供足够的缓冲,以防一个节点向下移动。出了什么问题?

4个节点,RF=2

这意味着每个数据都位于群集中的2个节点上

使用RF 2时,仲裁实际上是2个节点。因此,如果一个节点关闭,则 正如你所描述的,在大约50%的时间里,人们会错过当地的问答

RF是群集中相同数据的副本数,而不是可以释放的节点数

问题是在仲裁中,若使用一致性级别1,那个么就可以了,并且可以容忍一个节点宕机

也可以查看此页面:


此外,如果不使用本地配额,客户将前往其他数据中心获取数据(使用两个、三个等)

这非常有意义。我没想清楚。谢谢