【发布时间】:2016-04-10 12:50:06
【问题描述】:
我们有 2 个节点的 Cassandra 集群。复制因子为 1,一致性级别为 1。我们没有使用复制,因为我们插入的数据对于每条记录来说都非常庞大。 当在该节点中执行写入时节点关闭时,Cassandra 如何做出反应?我们正在使用来自 Java 客户端的 Hector API。 我的理解是 Cassandra 将对正在运行的其他节点执行写入操作。
【问题讨论】:
我们有 2 个节点的 Cassandra 集群。复制因子为 1,一致性级别为 1。我们没有使用复制,因为我们插入的数据对于每条记录来说都非常庞大。 当在该节点中执行写入时节点关闭时,Cassandra 如何做出反应?我们正在使用来自 Java 客户端的 Hector API。 我的理解是 Cassandra 将对正在运行的其他节点执行写入操作。
【问题讨论】:
不,如果插入的数据属于故障节点的令牌范围,则使用 CL.ONE 不会执行写入。一致性级别定义了必须响应多少副本节点才能接受请求。
如果你想能够写,即使副本节点宕机,你也需要使用 CL.ANY。 ANY 将确保协调器存储请求的提示。提示存储在 System.Hints 表中。副本再次恢复后,所有提示将被处理并发送到即将到来的节点。
编辑
您将收到以下错误:
com.datastax.driver.core.exceptions.UnavailableException: Not enough replica available for query at consistency ONE (1 required but only 0 alive)
【讨论】: