如何在群集级别的cassandra中设置默认一致性级别?
Cassandra文档提到它可能: "您可以在群集,数据中心或单个I / O操作基础上配置一致性"但是在yaml文件中没有这样的选项。
答案 0 :(得分:3)
使用Java Driver,您可以在构建群集时覆盖默认CL(ONE):
QueryOptions qo = new QueryOptions();
qo.setConsistencyLevel(ConsistencyLevel.QUORUM);
cluster = Cluster.builder()
.withQueryOptions(qo)
.addContactPoints(CONTACT_POINTS).withPort(PORT)
.build();
Python驱动程序似乎也支持这一点,通过ExecutionProfile
s。
在cqlsh
中使用CONSISTENCY命令。
答案 1 :(得分:0)
在运行查询之前,在驱动程序级别设置了一致性级别,因此Cassandra.yaml文件中没有此类选项。
如果您打算使用预准备语句(Java驱动程序示例):
PreparedStatement prepStatement = session.prepare("select * from users");
prepStatement.setConsistencyLevel(ConsistencyLevel.ALL);
我们在所有语句中设置一致性级别的方法是将语句创建集中在实用程序类中。通过这种方法,我们还成功地防止了批处理语句中的内存泄漏。