如何使用Datastax java驱动程序显式设置WRITE一致性?

时间:2017-02-06 06:49:50

标签: datastax datastax-java-driver cassandra-2.1

使用datastax java驱动程序连接到Cassandra,我希望显式设置WRITE一致性,但似乎我们只能为查询设置一致性级别。下面是示例代码。我怎么提到驾驶员杠杆的写一致性?

Cluster cluster = Cluster
                        .builder()
                        .addContactPoint(host)
                        .withQueryOptions(new QueryOptions().setConsistencyLevel(ConsistencyLevel.ONE))
                        .withRetryPolicy(DefaultRetryPolicy.INSTANCE)
                        .withCredentials(userName,password)
                        .withLoadBalancingPolicy(
                                new TokenAwarePolicy(DCAwareRoundRobinPolicy.builder().build()))
                        .build();

2 个答案:

答案 0 :(得分:1)

我们对读取和写入有完全不同的要求(读取对延迟数字的SLA非常紧密,写入对于我们快速完成并不重要)。

我们决定拆分会话,我们创建了两个Cluster个对象,我们创建了两个会话,一个用于读取,一个用于写入。当我们写作时,我们正在使用writeSession并且我们使用CL QUORUM进行编写,而当我们阅读时,我们使用readSession来调整延迟要求,使用CL ONE,推测性执行和严格套接字读取超时。

简而言之,您可以为所有写入定义特定会话,并在Cluster对象上定义一致性级别。请注意,这将暗示从驱动程序到Cassandra集群的更多连接。

答案 1 :(得分:0)

可以在群集级别设置一致性,在这种情况下,使用session.execute运行的任何查询都将具有该一致性级别。您还可以将一致性级别设置为session.execute语句本身的一部分。