【问题标题】:How to run Spring Data Cassandra 2.2.1 with Cassandra 2.1.9?如何使用 Cassandra 2.1.9 运行 Spring Data Cassandra 2.2.1?
【发布时间】:2020-03-08 08:04:20
【问题描述】:
我使用 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
我怎样才能让它工作?
【问题讨论】:
标签:
java
spring-data-cassandra
cassandra-2.1
【解决方案1】:
原来您可以配置驱动程序使用的协议版本。 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);
}
}
例如在您的 application.yml 中为 Cassandra 2.1.9:
cassandra.protocolVersion: 3