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

ioekq8ef  于 2022-09-27  发布在  Java
关注(0)|答案(2)|浏览(195)

有了连接到Cassandra的datatax java驱动程序,我希望显式地设置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();
a11xaf1n

a11xaf1n1#

我们对读取和写入有完全不同的要求(读取在延迟数方面有严格的SLA,而写入对我们来说并不是那么重要以快速完成)。
我们决定分割会话,我们创建了两个Cluster对象,并在这些对象中创建两个会话,一个用于读取,另一个用于写入。当我们在写的时候,我们使用e1d1e,我们用CL QUORUM来写,而当我们读的时候,使用e1c2d1e来调整延迟要求,使用CL ONE、推测执行和紧套接字读取超时。
长话短说,您可以为所有写操作定义特定于会话的内容,并在Cluster对象上定义一致性级别。请注意,这将牵涉到从驱动程序到Cassandra集群的更多连接。

mnemlml8

mnemlml82#

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

相关问题