【发布时间】:2019-02-16 16:13:46
【问题描述】:
我有以下配置的 cassandra 集群设置:-
- 节点:- 3
- 数据中心:- dc1
- 复制因子:-3
- 一致性:- LOCAL_QUORUM
我创建了一个示例 spring boot api,它递归地插入到 keyspace(test) 中的 table(testing1) 中。
在执行写入操作之前,我使用 tc 命令在其中一个节点中引入了延迟(2100ms)作为响应,因此当执行写入操作时,我们会得到 writetimeoutexception,因为在 cassandra.yaml 中 write_request_timeout 设置为 2000ms。 Cassandra 仍应成功执行写入操作,因为需要确认满足一致性级别 (2) 的节点正在正常工作,但我收到以下异常:-
com.datastax.driver.core.exceptions.WriteTimeoutException:在一致性 LOCAL_QUORUM 写入查询期间 Cassandra 超时(需要 2 个副本,但只有 1 个确认写入)。
为什么即使需要 ack(2) 的节点已启动并运行,写入也会失败?
【问题讨论】:
标签: spring-boot cassandra datastax spring-data-cassandra