首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何设置cassandra读写一致性

如何设置cassandra读写一致性
EN

Stack Overflow用户
提问于 2016-03-02 03:13:56
回答 4查看 18.5K关注 0票数 7

我找不到这方面的文档。我知道cqlsh中有一个一致性命令,但读写一致性之间没有区别。如何为读写设置不同的一致性级别?

此外,还提到了“默认”一致性级别。默认设置在哪里?它是用于读还是写?

EN

回答 4

Stack Overflow用户

发布于 2018-06-23 04:08:12

如何为读取和写入设置不同的一致性级别?

如果您只想更改当前会话的一致性级别,请使用CONSISTENCY

如果您想通过编程更改一致性级别,请使用适用于您的客户端语言的cassandra驱动程序。

由于可以按语句设置一致性级别,因此您可以在每条语句上设置它,也可以使用PreparedStatements。如果您使用的是Java驱动程序,则可以为读取和写入配置全局一致性级别(但不仅仅是读取和写入)。

默认一致性级别设置在哪里?它是用于读还是写?

如果您希望为读取设置不同于写入的一致性级别,则必须在每个语句的基础上执行此操作。使用QueryOptions().setConsistencyLevel设置全局一致性级别(用于Java驱动程序)。它同时用于读和写。

要设置当前会话的一致性级别,请使用cassandra shell (CQLSH)中的CONSISTENCY命令。

例如:

设置一致性以强制大多数节点响应:CONSISTENCY QUORUM

要查看当前的一致性级别,只需从shell运行CONSISTENCY;

ty@cqlsh> consistency; Current consistency level is ONE.

对于编程客户端应用程序,请使用适当的驱动程序设置一致性级别。

例如,要使用Java驱动程序设置每次插入的一致性级别,可以使用setConsistencyLevel调用QueryBuilder.insertInto

例如:

PreparedStatement pstmt = session.prepare( "INSERT INTO product (sku, description) VALUES (?, ?)"); pstmt.setConsistencyLevel(ConsistencyLevel.QUORUM);

要使用Java驱动程序为读取和写入设置全局一致性级别,请执行以下操作:

QueryOptions qo = new QueryOptions().setConsistencyLevel(ConsistencyLevel.ALL);

Cassandra

  • 由于驱动程序只执行CQL语句,这些语句可以是对Cassandra的读取或写入,因此无法全局配置仅读取或仅写入的一致性级别。为此,由于可以按语句设置一致性级别,因此您可以在每条语句上设置它,也可以使用PreparedStatements。有关更多信息,请参阅Queries and Results文档。

更多关于读/写一致性级别的资源

此处还解释了

configuring consistency with the Java Driver

其他关于一致性的资源:您可能还想研究您的副本放置策略和复制因素(这是其他形式的一致性)。为了更好地衡量,我包含了下面的链接:

票数 4
EN

Stack Overflow用户

发布于 2016-03-02 06:56:02

默认情况下,所有读/写操作的一致性级别均为1。

在每个查询(read或upsert)的基础上,通过在查询上添加CONSISTENCY XXXX语法来设置CL,如下所示:

https://cassandra.apache.org/doc/latest/cql/dml.html#insert

https://cassandra.apache.org/doc/4.0/tools/cqlsh.html

票数 3
EN

Stack Overflow用户

发布于 2016-03-03 00:52:59

不再使用CQL USING子句设置一致性级别。有关说明,请参阅CASSANDRA-4734

相反,对于CQLSH,您应该使用CONSISTENCY命令:有关详细信息,请参阅here

请注意,从ONELOCAL_ONE的所有DataStax驱动程序中的默认一致性级别都已更改:有关详细信息,请参阅python driver documentation -然而,尽管在幕后使用了python驱动程序,CQLSH仍然具有默认一致性ONE)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35731452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档