我已经用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,因此该应该有效,但实际上没有。我们包括的唯一的卡桑德拉特定依赖项是org.springframework.boot:spring-boot-starter-data-cassandra
如何使它正常工作?
答案 0 :(得分:0)
原来,您可以配置驱动程序使用的协议版本。 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