java - 如何使用 Cassandra 2.1.9 运行 Spring Data Cassandra 2.2.1?

标签 java spring-data-cassandra cassandra-2.1

我使用 Spring Data Cassandra 2.2.1 开发了一个新应用程序,并希望在 Cassandra 2.1.9 服务器(旧的,我知道)上运行它。但我们得到了错误

com.datastax.driver.core.exceptions.UnsupportedProtocolVersionException: Host does not support protocol version V4 but V3

Spring Data Cassandra manual声称 Spring Data 2.2.1 至少需要 Cassandra 2.1,因此这应该可以工作,但事实并非如此。我们包含的唯一特定于 cassandra 的依赖项是 org.springframework.boot:spring-boot-starter-data-cassandra

我怎样才能让它发挥作用?

最佳答案

事实证明,您可以配置驱动程序使用的协议(protocol)版本。 Spring Boot Cassandra 2.2.1 和 com.datastax.driver.core 3.7.2 的默认版本是 V4,即至少为 Cassandra 2.2.0。

配置它:

@Configuration
@EnableCassandraRepositories
public class CassandraConfig extends AbstractCassandraConfiguration {
  @Value("${cassandra.protocolVersion}")
  private Integer protocolVersion;
  @NotNull
  @Override
  public ProtocolVersion getProtocolVersion() {
    return ProtocolVersion.fromInt(protocolVersion);
  }
}

例如在 Cassandra 2.1.9 的 application.yml 中:

cassandra.protocolVersion: 3

关于java - 如何使用 Cassandra 2.1.9 运行 Spring Data Cassandra 2.2.1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58821618/

相关文章:

java - 相同的元素被插入到java中的LinkedList中

java - 如何更新JAVAFX TableView 中每一行的值

java - 用于将 Java 类型映射到 Cassandra 类型的 DataStax API

当运行 queryForObject 函数时,Spring-data-cassandra 的 CassandraTemplate 返回字符串,而不是指定的对象。

java - Spring数据 Cassandra : How to query tables with compound keys?

java - java中不等于

java - Cassandra Java datastax 2.1.8 无法使用引号连接到键空间

cassandra - datastax opscenter代理未安装

cassandra-2.1 - 截断期间的 Cassandra 错误 : Cannot achieve consistency level ALL

java - 如何确保我始终获得项目根目录