mongodb - 带有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
在集群详细信息中。我正在将我的 Spring Boot 应用程序部署在一个 EC2 实例中,该实例运行在与 documentdb 相同的 vpc 中,我已经对其进行了交叉检查。运行我的应用程序时出现以下错误。
com.mongodb.client.internal.MongoClientDelegate$1@51a81d99 从集群描述 ClusterDescription{type=REPLICA_SET, connectionMode=MULTIPLE, serverDescriptions=[ServerDescription{address=:27017, type=UNKNOWN, state=CONNECTING, exception={ com.mongodb.MongoSocketReadTimeoutException:接收消息时超时},由{java.net.SocketTimeoutException:读取超时}}]}引起。在超时前等待 30000 毫秒
我没有找到在 spring-boot 中使用 documentdb 的好资源。知道如何找到确切原因吗?
解决方案
您可以尝试重新启用 tls,但使用-Djdk.tls.client.protocols=TLSv1.2
命令行来降级 tls 版本。
或者尝试升级 Java 版本。
推荐阅读
- python - 具有多个值的 ModelForm 没有响应
- javascript - 如何根据先前的输入过滤输入字段
- python - 生成锦标赛程序python
- python - Tkinter 可点击/可选择的表格行(检测点击的行)
- plotly - Plotly:更改图例标签并聚合数值
- c++ - 使用索引列表提升多索引删除元素
- python - Xpath 定位器无法检测到元素
- c - “'return' 带有一个值,在返回 void 的函数中”当返回一个结构时
- python - Pytest 夹具范围 - 会话与包
- python - 将 xps 文件从 mysql 检索到 QtableWidget 时出现问题