通过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秒。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...