【问题标题】:Setting Consistency Level using Java driver for Apache Cassandra使用 Apache Cassandra 的 Java 驱动程序设置一致性级别
【发布时间】:2017-06-25 04:56:24
【问题描述】:

我正在尝试使用 java 驱动程序测试设置一致性级别。我在复制因子 = 3 处创建了一个测试键空间和表集(出于测试目的,设置了一个节点 1 的集群)。我使用 CL set at ALL 从 java 驱动程序中进行了插入,然后尝试查询设置 CL at ALL。预期的行为是它会抱怨没有足够的副本可用,但它根本不抱怨。我尝试使用 CQLSH CONSISTENCY 命令,效果很好。是不是我做错了什么?

【问题讨论】:

  • 如果您展示了如何为 Java 驱动程序实验进行设置,将会很有帮助。
  • 设置了节点 1 的集群是什么意思?这是否意味着一个 1 节点正在以 RF=3 运行

标签: cassandra datastax-java-driver


【解决方案1】:

简短摘要:复制因子描述了您的数据存在多少副本。一致性级别描述了客户端看到的行为。也许有更好的方法来对这些进行分类。

Cassandra 中的一致性级别可以配置为管理可用性与数据准确性。

您可以在集群、数据中心或每个单独的读取或写入操作上配置一致性。参与节点之间的一致性可以全局设置,也可以基于每个操作进行控制。

对于客户端应用程序的编程,请使用适当的驱动程序设置一致性级别。例如,使用 Java 驱动程序,使用 setConsistencyLevel 调用 QueryBuilder.insertInto 来设置每个插入的一致性级别。

你没有做错你的情况会发生什么:-

CONSISTENCY LEVEL 'ALL' say : - A write must be written to the commit log and memtable on all replica nodes in the cluster for that partition.

因为您只有 1 个节点设置,并且如果您在本地查询(即在设置 Cassandra 的同一台机器上),那么数据已经存在/保存在您的节点上,并且写入和读取速度也足够快,所以您不需要没有任何错误。

为了最好地分析场景,您可以访问以下链接:-

https://www.ecyrd.com/cassandracalculator/

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2018-07-12
    • 2017-04-26
    • 1970-01-01
    • 2017-05-06
    • 2022-10-26
    • 1970-01-01
    • 2018-07-09
    • 1970-01-01
    • 2014-02-26
    相关资源
    最近更新 更多