【问题标题】:Time out issue in Cassandra when one node is down当一个节点关闭时,Cassandra 中的超时问题
【发布时间】:2021-08-25 22:54:50
【问题描述】:

当 Cassandara 集群中的一个种子节点出现故障时,我收到以下错误,该集群有 2 个数据中心,每个 DC 中有 6 个节点,复制因子为 3

ReadTimeoutException: Cassandra timeout during read query at consistency ALL (6 responses were required but only 5 replica responded)

java代码中的ConsistencyLevel已设置为local_quorum:

.withQueryOptions(new QueryOptions().setConsistencyLevel(ConsistencyLevel.**LOCAL_QUORUM**)

所以,我的理解是,即使 DC1 中的一个节点出现故障,应用程序仍然应该能够查询数据库,因为 RF 为 3,DC1 中有 5 个节点启动,DC2 中也有 6 个节点,我想知道我'在 Cassandra 的配置中缺少 m 导致即使一个节点关闭也会导致超时问题?

【问题讨论】:

  • 你的理解是对的。请检查是否没有使用 quorum all 运行查询。看起来您的一个查询正在以一致的方式运行。请检查您的查询没有以 ALL 一致性级别运行。否则是不可能的

标签: cassandra cassandra-3.0


【解决方案1】:

根据您提供的有限信息,我怀疑您的集群不时会过载,并且节点正在丢弃突变。结果副本不一致,因此当您读取数据并启用读取修复机会时,会触发读取修复,一致性为ALL(请参阅Read repair in Cassandra)。

即使只有一个副本不可用,这显然也是有问题的。作为一种解决方法,您应该将 read_repair_chancedclocal_read_repair_chance 都设置为 0 以在有问题的表上禁用它们,但这并不能真正解决真正的问题。

您需要解决集群容量不足的根本问题,因此您应该检查commitlog/ 磁盘的吞吐量并考虑向集群添加更多节点。干杯!

【讨论】:

    猜你喜欢
    • 2021-11-30
    • 1970-01-01
    • 1970-01-01
    • 2015-09-04
    • 2013-06-09
    • 2021-02-28
    • 2020-07-21
    • 2021-01-12
    • 2018-06-17
    相关资源
    最近更新 更多