如何使用 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))