我们有5个节点Apache Cassandra集群,复制因子为2。所有运行状况监视命令,如“nodetool status”等都没有显示错误。但节点并不真正同步。不同节点上的相同请求可能返回不同的值。同一节点上的同一请求可能返回不同的值x1c 0d1x问题-除了“nodetool修复”之外,还有其他方法可以强制节点同步吗?是否有一种方法可以在运行的生产群集上使所有数据完全复制到所有节点上(增加复制因子)?
plupiseo1#
在运行查询之前,您需要在CQLSH上设置CONSISTENCY LOCAL_QUORUM;(最有可能是在您的应用程序上)。此外,2的复制因子也不是有效的,因为2的RF/2+1是2。因此,即使其中一个保存数据的复制副本出现故障,应用程序也将面临停机。最好先将RF(在密钥空间级别)调整为3,因为在处理LOCAL_QUORUM一致性级别时,您可以容忍1副本失败。此外,请确保您的修复在此群集中正确运行。
CONSISTENCY LOCAL_QUORUM;
2
3
LOCAL_QUORUM
1
1条答案
按热度按时间plupiseo1#
在运行查询之前,您需要在CQLSH上设置
CONSISTENCY LOCAL_QUORUM;
(最有可能是在您的应用程序上)。此外,2
的复制因子也不是有效的,因为2
的RF/2+1是2
。因此,即使其中一个保存数据的复制副本出现故障,应用程序也将面临停机。最好先将RF(在密钥空间级别)调整为3
,因为在处理LOCAL_QUORUM
一致性级别时,您可以容忍1
副本失败。此外,请确保您的修复在此群集中正确运行。