java - 连接 Kundera 到 Cassandra 集群

标签 java jdbc cassandra

既然我有一个包含多个节点的 Cassandra 集群,我应该如何从 Java 代码中选择要连接的节点?显然,我可以连接到任何节点,但是最好的方法是什么?

例如,我一直在阅读昆德拉的文章,据我所知,您定义了这样的联系:

<persistence xmlns="http://java.sun.com/xml/ns/persistence"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
    version="1.0">
    <persistence-unit name="myPersistenceUnit">
        <provider>com.impetus.kundera.ejb.KunderaPersistence</provider>
        <properties>
            <!-- 2nd level cache  -->
            <property name="kundera.nodes" value="localhost" />
            <property name="kundera.port" value="9160" />
            <property name="kundera.keyspace" value="Keyspace1" />
            <property name="sessionless" value="false" />
            <property name="kundera.client" value="com.impetus.kundera.client.PelopsClient" />
            <property name="kundera.annotations.scan.package" value="com.mypackage" />            
        </properties>
    </persistence-unit>
</persistence>

问题在于 kundera.nodes 接受单个 IP 地址。有没有一种方法可以指定多个 IP 地址,以便在一个节点发生故障时它会尝试集群中的另一个节点?

谢谢

最佳答案

作为解决方法,您可能需要尝试负载均衡器(例如 HAProxy)来满足此类需求。 Kundera 团队正在开发此功能,但在那之前您可以继续使用此类解决方法。

-维韦克

关于java - 连接 Kundera 到 Cassandra 集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16239440/

相关文章:

java - 是否可以强制 Java 8 编译器创建可重现的类文件?

oracle - 数据库驱动程序中已编译的预备语句是否仍需要在数据库中进行编译?

java - Android 上的简单 map 应用程序(google api v2)。不起作用。错误

java - 如何在 CompletableFutures 中收集成功和错误?

java - ActiveMQ - JDBC 持久化 MySQL : ACTIVEMQ_MSGS is empty

sorting - Cassandra 按计数对结果排序

cassandra - 你如何使用Cassandra工具sstableloader?

cassandra - 在GCP上通过VPN进行Cassandra间DC同步

java - 用Java做Xml的简单方法

java - 如何区分普通空白字符和其他空白字符