有了连接到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();
2条答案
按热度按时间a11xaf1n1#
我们对读取和写入有完全不同的要求(读取在延迟数方面有严格的SLA,而写入对我们来说并不是那么重要以快速完成)。
我们决定分割会话,我们创建了两个
Cluster
对象,并在这些对象中创建两个会话,一个用于读取,另一个用于写入。当我们在写的时候,我们使用e1d1e,我们用CL QUORUM来写,而当我们读的时候,使用e1c2d1e来调整延迟要求,使用CL ONE、推测执行和紧套接字读取超时。长话短说,您可以为所有写操作定义特定于会话的内容,并在Cluster对象上定义一致性级别。请注意,这将牵涉到从驱动程序到Cassandra集群的更多连接。
mnemlml82#
一致性可以在集群级别设置,在这种情况下,任何查询都与会话一起运行。execute将具有该一致性级别。您还可以将一致性级别设置为会话的一部分。执行语句本身。