【问题标题】:How to connect to cassandra java client with more than one node without mentioning the node details in java code using jdbc or datastax drivers如何使用 jdbc 或 datastax 驱动程序连接到具有多个节点的 cassandra java 客户端而不提及 java 代码中的节点详细信息
【发布时间】:2016-05-31 19:34:30
【问题描述】:

我是 Cassandra 的新手,我想通过 Java 客户端作为 Cassandra api 连接到 Cassandra。我可以通过在我的 java 代码中提供节点详细信息,使用 datastax 和 jdbc 驱动程序来使用我的 java 代码连接到 Cassandra。现在我想连接到集群中有 4 个节点的 Cassandra 集群,我想连接到 Cassandra 集群节点而不在代码中提供节点详细信息,并且需要在集群中的 1 个节点关闭时获得连接,它应该连接到集群中的下一个节点,所以当我使用 datastax 驱动程序时,在我的代码中提到我的节点详细信息的位置。任何人都可以帮助我做到这一点..它会帮助我很多 提前致谢

【问题讨论】:

    标签: java jdbc datastax-java-driver cassandra-3.0


    【解决方案1】:

    查看此Load Balancing 页面。

    Cassandra 使用 gossip 来保持所有其他节点的最新状态。您可以连接到一个,它会知道所有其他人并按照指示进行负载平衡。基本上,如果您之前测试的节点是这个新集群的一部分,那么您的旧代码应该可以正常工作。

    【讨论】:

    • 是的,谢谢@caburse,它帮助我在检查该页面后找到了一些解决问题的方法。
    【解决方案2】:

    当我的一个节点从集群中关闭时,我能够连接到 cassandra 集群,可以连接到集群中的其他节点并且也可以实现负载平衡,以下是我使用并连接的连接。

    cluster = Cluster
                .builder()
                .addContactPoints("192.1.1.1","192.1.1.2")
                .withRetryPolicy(DefaultRetryPolicy.INSTANCE)
                .withLoadBalancingPolicy(
                        new TokenAwarePolicy(new DCAwareRoundRobinPolicy.Builder().build()))
                .build(); 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-07
      • 2018-04-16
      • 1970-01-01
      • 1970-01-01
      • 2021-01-03
      • 2022-01-04
      • 2013-05-21
      • 1970-01-01
      相关资源
      最近更新 更多