Java 驱动程序 v3.6 与 Cassandra 4.x 兼容吗?

问题描述 投票:0回答:3

我写信是为了检查 Datastax cassandra-driver-core 3.6 与 Cassandra 版本 4 的兼容性。 可以请您推荐一下吗? 下面是当前正在使用的依赖项,检查相同的依赖项是否适用于 Cassandra 版本 4.0

            <groupId>com.datastax.cassandra</groupId>
            <artifactId>cassandra-driver-core</artifactId>
            <version>3.6.0</version>

我确实参考了这篇文章,它说它是兼容的。然而,它对我来说不起作用。如果您可以评论支持部分以进一步检查

Apache Cassandra 4.x java 驱动程序兼容性

cassandra datastax-java-driver
3个回答
1
投票

我设法使用相同的 cassandra 3.11 驱动程序安装 cassandra 4x 以下步骤使其发挥作用:

  1. https://downloads.apache.org/cassandra/redhat/40x/
  2. 下载并安装 cassandra-4.0.5-1.noarch.rpm
  3. 根据现有集群 cassandra.yaml 文件配置 cassandra.yaml 文件。
  4. 以下参数(如果存在)需要从 Cassandra.yaml 中删除/注释,因为 cassandra4.X 版本不支持它 一个。 启动rpc b. rpc_服务器_类型 c. rpc_端口 d. thrift_framed_transport_size_in_mb e. 请求调度程序 f. thrift_prepared_statements_cache_size_mb

注意:如果使用 rhel 和 cassandra-4.0.5-1.noarch.rpm 使用 yum 命令失败,请尝试使用 cassandra-4.0.4-1.noarch.rpm,它可以正常工作。


1
投票

Java 驱动程序 3.6 版与 Apache Cassandra 4.0 兼容,但需要执行其他步骤才能使其正常工作。

Cassandra 4.0 使用本机协议 v5CASSANDRA-9362CASSANDRA-14973),但 Java 驱动程序 v3.6 仅支持本机协议 v3(C* 2.2、3.x)。为了连接到 C* 4.0 集群,您需要配置 Java 驱动程序 v3.6 以显式使用协议 v3。例如:

Cluster cluster = Cluster.builder()
    .addContactPoint(contactpoint)
    .withProtocolVersion(ProtocolVersion.V3)
    .build();

顺便说明一下,驱动程序 v3.6 于 2018 年发布,已经非常旧了。我们建议您升级到 Java 驱动程序的最新 v3.x 版本,在撰写本文时为 v3.11。由于它只是到最新补丁版本的升级,因此它与 v3.6 二进制兼容,并且不需要重构您的应用程序。干杯!


0
投票

我已将 cassandra 3.x 升级到 Cassandra 单元 4.3.1.0。和 datastax 驱动程序版本 3.11.5。在测试类中,我使用 EmbeddedCassandraServerHelper 连接到数据库。升级后执行此操作时 EmbeddedCassandraServerHelper.getSession() 给出 CqlSession ,无法获取 com.datastax.driver.core.Session 来执行查询

如何解决这个问题

© www.soinside.com 2019 - 2024. All rights reserved.