如何解决带有Spring Boot的AWS DocumentDB失败错误:com.mongodb.client.internal.MongoClientDelegate未选择服务器
我的应用程序是用Spring Boot编写的,并且可以在自管理的MongoDB服务器上正常工作。现在,我尝试将相同的Spring Boot应用程序与AWS DocumentDB连接。我启动了documentDB集群,并使用以下配置与spring-boot连接。
spring.data.mongodb.uri=mongodb://<user>:<password>@<my-cluster-endpoint>:27017/?replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false
spring.data.mongodb.database=mydb
我已禁用TLS,并且它在群集详细信息中显示TLS Enabled: No
。我正在将EC2实例中的spring boot应用程序部署在与documentdb正在运行相同的vpc中运行的EC2实例中,我对此进行了交叉检查。
运行我的应用程序时,出现以下错误。
com.mongodb.client.internal.MongoClientDelegate$1@51a81d99没有从集群描述ClusterDescription {type = REPLICA_SET,connectionMode = MULTIPLE,serverDescriptions = [ServerDescription {address =:27017,type = UNKNOWN,state = CONNECTING,异常= {com.mongodb.MongoSocketReadTimeoutException:接收消息时超时},由{java.net.SocketTimeoutException:读取超时}}]}引起。等待30000毫秒,然后超时
我找不到在spring-boot中使用documentdb的好资源。知道如何找到确切原因吗?
解决方法
您可以尝试重新启用tls,但可以在命令行中使用-Djdk.tls.client.protocols=TLSv1.2
来降级tls版本。
或尝试升级Java版本。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。