环境 RF = 3,CL = LOCAL_QUORUM,的vnode
问题
cassandra集群中有三个重复,如果一个节点向下,则没有问题,因为我们在cassandra中仍有两个重复数据。如果两个节点在同一个节点下来 一旦cassandra中存在数百个节点,我认为总是会发生这样的时间。很可能两个下行节点都有共同的记录。所以当请求公共记录时,客户端会读取失败。
我可以在一些查询中降级一致性级别,但不是所有查询都降级。所以有任何解决方案可以解决这个问题。
答案 0 :(得分:0)
这里没有魔力 - 如果您有RF = 3,则仲裁或本地仲裁查询需要两个节点才能成功
你可以:
将查询的一致性级别删除为ONE,这样您就可以继续使用,但可能会比您需要的一致性/持久性稍差,或者
将RF增加到5或添加另一个数据中心,这两个数据中心将允许您同时容忍两个节点故障
使用机架将群集空间划分为更小的区域,因此服务相同数据的两个节点不太可能同时失败
非常大的集群的许多运营商出于各种原因避免使用vnode,但一个重要原因是它使得邻接更难以推理 - 在单令牌情况下,两个节点失败的可能性很小在一百个节点集群中相邻。