我用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手册声称Spring Data 2.2.1至少需要Cassandra 2.1,所以这个应该有效,但它没有。我们包含的唯一cassandra特定依赖项是org.springframework.boot:spring-boot-starter-data-cassandra
我怎样才能让它发挥作用?
您可以配置驱动程序使用的协议版本。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