bho*_*ass 7 consistency cassandra
我找不到这方面的文档。我知道cqlsh中有一致性命令,但是读写一致性没有区别。我如何为读写设置不同的一致性级别?
此外,还提到了“默认”一致性级别。默认设置在哪里?是读还是写?
默认情况下,所有 R/W 操作的一致性级别均为 1。
设置 CL 是在每个查询(读取或更新插入)的基础上完成的,方法是CONSISTENCY XXXX在查询上添加语法,如下所示:
https://cassandra.apache.org/doc/latest/cql/dml.html#insert
和
https://cassandra.apache.org/doc/4.0/tools/cqlsh.html
如何为读取和写入设置不同的一致性级别?
如果您只想更改当前会话的一致性级别,请使用CONSISTENCY。
如果您想以编程方式更改一致性级别,请使用适合您的客户端语言的 cassandra 驱动程序。
由于可以为每个语句设置一致性级别,因此您可以在每个语句上设置它,也可以使用PreparedStatements。如果您使用的是 Java 驱动程序,则可以为读取和写入(但不仅是读取而且只能写入)配置全局一致性级别。
默认的[一致性级别]在哪里设置?它是用于读还是写?
如果您想为读取设置与写入不同的一致性级别,则必须在每个语句的基础上进行设置。用于QueryOptions().setConsistencyLevel设置全局一致性级别(对于 Java 驱动程序)。它适用于读取和写入。
要设置当前会话的一致性级别,请使用CONSISTENCYcassandra shell (CQLSH) 中的
例如:
设置 CONSISTENCY 以强制大多数节点响应:
CONSISTENCY QUORUM
要查看当前的一致性级别,只需CONSISTENCY;从 shell 运行:
ty@cqlsh> consistency;
Current consistency level is ONE.
用于对客户端应用程序进行编程,请使用适当的驱动程序设置一致性级别。
例如,要使用 Java 驱动程序设置每个插入的QueryBuilder.insertInto一致性级别,请使用setConsistencyLevel.
例如:
PreparedStatement pstmt = session.prepare(
"INSERT INTO product (sku, description) VALUES (?, ?)");
pstmt.setConsistencyLevel(ConsistencyLevel.QUORUM);
要使用 Java 驱动程序设置读取和写入的全局一致性级别,请执行以下操作:
QueryOptions qo = new QueryOptions().setConsistencyLevel(ConsistencyLevel.ALL);
有关读/写一致性级别的更多资源
有关一致性的其他资源: 您可能还需要研究副本放置策略和复制因子(这是其他形式的一致性)。为了更好的衡量,我添加了以下链接:
| 归档时间: |
|
| 查看次数: |
17382 次 |
| 最近记录: |