如何使用 Datastax java 驱动程序显式设置 WRITE 一致性?
How to set WRITE consistency explicitly with Datastax java driver?
使用 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();
可以在集群级别设置一致性,在这种情况下,任何 运行 和 session.execute 的查询都将具有该一致性级别。您还可以将一致性级别设置为 session.execute 语句本身的一部分。
我们对读取和写入有完全不同的要求(读取在延迟数量方面有非常严格的 SLA,而写入对于我们快速完成并不重要)。
我们决定拆分会话,我们创建了两个 Cluster
对象,并在其中创建了两个会话,一个用于读取,一个用于写入。当我们写入时,我们使用 writeSession
并使用 CL QUORUM 写入,而当我们读取时,我们使用 readSession
,它针对延迟要求进行了调整,具有 CL ONE、推测执行和紧套接字读取超时。
长话短说,您可以为所有写入定义特定的会话,并在 Cluster 对象上定义一致性级别。请注意,这将涉及从驱动程序到 Cassandra 集群的更多连接。
使用 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();
可以在集群级别设置一致性,在这种情况下,任何 运行 和 session.execute 的查询都将具有该一致性级别。您还可以将一致性级别设置为 session.execute 语句本身的一部分。
我们对读取和写入有完全不同的要求(读取在延迟数量方面有非常严格的 SLA,而写入对于我们快速完成并不重要)。
我们决定拆分会话,我们创建了两个 Cluster
对象,并在其中创建了两个会话,一个用于读取,一个用于写入。当我们写入时,我们使用 writeSession
并使用 CL QUORUM 写入,而当我们读取时,我们使用 readSession
,它针对延迟要求进行了调整,具有 CL ONE、推测执行和紧套接字读取超时。
长话短说,您可以为所有写入定义特定的会话,并在 Cluster 对象上定义一致性级别。请注意,这将涉及从驱动程序到 Cassandra 集群的更多连接。