如何使用 Java 驱动程序 (2.0.2,3.1) 和 cassandra 3.7 在 java 中使用 DCAwareRoundRobinPolicy
How to Use DCAwareRoundRobinPolicy in java using Java Driver (2.0.2,3.1) and cassandra 3.7
我已经配置了具有 2 个数据中心和每个 3 个节点的 cassandra 集群。我想使用 DCAwareRoundRobinPolicy 来指定本地数据中心。我尝试同时使用 Datastax java 驱动程序 2.0.2 和 3.1。但是在 2.0.2 中没有编译时错误,而是在 运行-time 我得到 NoSuchMethodError 和 3.1 给我 DCAwareRoundRobinPolicy() 构造函数是不可见的。
谁能告诉我如何解决这个问题?
提前致谢。
对于 Java Cassandra Driver 3.1,您现在可以使用构建器来创建 DCAwareRoundRobinPolicy
DCAwareRoundRobinPolicy dcAwareRoundRobinPolicy = DCAwareRoundRobinPolicy.builder()
.withLocalDc("my-dc")
.withUsedHostsPerRemoteDc(1)
.build();
我还建议您在构建集群时也使用 TokenAware add
Cluster.Builder()
.withLoadBalancingPolicy(new TokenAwarePolicy(dcAwareRoundRobinPolicy))
我已经配置了具有 2 个数据中心和每个 3 个节点的 cassandra 集群。我想使用 DCAwareRoundRobinPolicy 来指定本地数据中心。我尝试同时使用 Datastax java 驱动程序 2.0.2 和 3.1。但是在 2.0.2 中没有编译时错误,而是在 运行-time 我得到 NoSuchMethodError 和 3.1 给我 DCAwareRoundRobinPolicy() 构造函数是不可见的。
谁能告诉我如何解决这个问题?
提前致谢。
对于 Java Cassandra Driver 3.1,您现在可以使用构建器来创建 DCAwareRoundRobinPolicy
DCAwareRoundRobinPolicy dcAwareRoundRobinPolicy = DCAwareRoundRobinPolicy.builder()
.withLocalDc("my-dc")
.withUsedHostsPerRemoteDc(1)
.build();
我还建议您在构建集群时也使用 TokenAware add
Cluster.Builder()
.withLoadBalancingPolicy(new TokenAwarePolicy(dcAwareRoundRobinPolicy))