【问题标题】:Cassandra Consistency level issueCassandra 一致性级别问题
【发布时间】:2017-01-09 05:13:27
【问题描述】:

我们有 3 节点 Cassandra 集群,复制为 3 。一段时间后,Cassandra(1 个节点)宕机了 2 天。

现在我们无法从 Cassandra 集群中读取数据

有些时候我们变得不频繁

原因:com.datastax.driver.core.exceptions.ReadFailureException:Cassandra 在一致性 ONE 读取查询期间失败(需要 1 个响应,但只有 0 个副本响应,1 个失败) 在 com.datastax.driver.core.exceptions.ReadFailureException.copy(ReadFailureException.java:95) 在 com.datastax.driver.core.Responses$Error.asException(Responses.java:128) 在 com.datastax.driver.core.DefaultResultSetFuture.onSet(DefaultResultSetFuture.java:179) 在 com.datastax.driver.core.RequestHandler.setFinalResult(RequestHandler.java:184) 在 com.datastax.driver.core.RequestHandler.access$2500(RequestHandler.java:43) 在 com.datastax.driver.core.RequestHandler$SpeculativeExecution.setFinalResult(RequestHandler.java:798)

我们已经解雇了节点>nodetool修复

我们如何检查所有数据是否复制了所有节点?读/写的一致性级别应该是多少? .当前一致性级别为默认(一)。

是否需要任何架构级别更改。

需要任何管理评论吗?

【问题讨论】:

  • 你知道具体的请求失败了吗?您可以尝试使用 cqlsh 和 tracing on 运行相同的请求吗?此外,您应该使用一致性级别 ONE(多次)和一致性级别 ALL 来尝试此请求。然后会发生什么?

标签: database cassandra spark-cassandra-connector cassandra-cli


【解决方案1】:

我的想法是将写入一致性设置为所有。通过这种方式,所有节点都将确认他们收到了写入请求并将读取设置为 1,这样您的协调节点将始终使用最新数据进行响应。正如您提到的有关节点工具修复的内容,在节点故障的情况下使用它是一个很好的做法。

除此之外,我建议您检查日志,因为这是失败的,您可能会在那里找到一些东西。

【讨论】:

    猜你喜欢
    • 2018-07-26
    • 2016-07-05
    • 2016-04-06
    • 2018-06-13
    • 2014-10-13
    • 2017-02-23
    • 2021-05-07
    • 1970-01-01
    • 2017-05-06
    相关资源
    最近更新 更多