如何解决通过Spring反应性数据自动配置连接到AWS密钥空间
我尝试使用spring-boot-starter-data-cassandra-reactive
连接到我的AWS键空间,但出现以下错误:
Error creating bean with name 'cassandraSession' defined in class path resource [com/pams/framework/windsoncore/configurations/CassandraConfiguration.class]: Invocation of init method failed; nested exception is com.datastax.oss.driver.api.core.AllNodesFailedException: Could not reach any contact point,make sure you've provided valid addresses (showing first 1 nodes,use getAllErrors() for more): Node(endPoint=cassandra.us-east-2.amazonaws.com:9142,hostId=null,hashCode=33a6c4f3): [com.datastax.oss.driver.api.core.DriverTimeoutException: [s5|control|id: 0xe0ebe047,L:/10.0.0.128:54474 - R:cassandra.us-east-2.amazonaws.com/3.12.23.155:9142] Protocol initialization request,step 1 (OPTIONS): timed out after 500 ms]
我尝试了他们的文档,但是可以,但是我想使用spring自动配置和反应性的Cassandra存储库。我在application.yml中添加了所有配置,并将trustStore
信息作为JVM参数传递。但是我无法克服这些错误。我试图四处寻找这个问题,但没有找到可行的解决方案。
如果有人可以在这里帮助我,我将不胜感激。
我也尝试了以下方法:
@Configuration
@Slf4j
@EnableReactiveCassandraRepositories
public class CassandraConfiguration extends AbstractReactiveCassandraConfiguration {
@Override
protected String getContactPoints() {
return "cassandra.us-east-2.amazonaws.com";
}
@Override
protected int getPort() {
return 9142;
}
@Override
protected String getKeyspaceName() {
return "windson";
}
@Override
protected CqlSession getRequiredSession() {
// TODO Auto-generated method stub
DriverConfigLoader loader = DriverConfigLoader.fromClasspath("application.conf");
return CqlSession.builder().withConfigLoader(loader).build();
}
}
谢谢。
解决方法
您需要将application.conf
文件中的连接超时增加到:
datastax-java-driver {
advanced.connection {
connect-timeout = 5 seconds
init-query-timeout = 5 seconds
}
}
或升级到Java驱动程序4.9,其中init-query-timeout
已从500毫秒增加到5秒。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。