如何在使用Java驱动程序(2.0.2,3.1)和cassandra 3.7的java中使用DCAwareRoundRobinPolicy

时间:2016-10-05 09:11:23

标签: java cassandra datastax cql nosuchmethoderror

我已经配置了带有2个数据中心的cassandra集群,每个数据中心有3个节点。我想使用DCAwareRoundRobinPolicy来指定本地数据中心。我尝试使用Datastax java驱动程序2.0.2和3.1。但是2.0.2没有编译时错误,而是在运行时我得到NoSuchMethodError和3.1给我DCAwareRoundRobinPolicy()构造函数不可见。

有谁能告诉我如何解决这个问题?

提前致谢。

1 个答案:

答案 0 :(得分:1)

对于Java Cassandra Driver 3.1,您现在使用构建器来创建DCAwareRoundRobinPolicy

DCAwareRoundRobinPolicy dcAwareRoundRobinPolicy = DCAwareRoundRobinPolicy.builder()
    .withLocalDc("my-dc")
    .withUsedHostsPerRemoteDc(1)
    .build();

我还建议使用TokenAware,以便在构建群集时添加

Cluster.Builder()
    .withLoadBalancingPolicy(new TokenAwarePolicy(dcAwareRoundRobinPolicy))