繁体   English   中英

我无法使用 spring 启动连接到 mongo db atlas

[英]I cannot connect to mongo db atlas using spring boot

我有一个 spring 微服务应用程序链接到 mongodb atlas 数据库,昨天我的项目工作正常但今天我收到这个错误

2022-11-24 00:29:33.267  INFO 5588 --- [ngodb.net:27017] org.mongodb.driver.cluster               : Exception in monitor thread while connecting to server ac-bl3jxj4-shard-00-02.wt2swod.mongodb.net:27017

com.mongodb.MongoSocketReadException: Exception receiving message
    at com.mongodb.internal.connection.InternalStreamConnection.translateReadException(InternalStreamConnection.java:707) ~[mongodb-driver-core-4.4.2.jar:na]
    at com.mongodb.internal.connection.InternalStreamConnection.receiveMessageWithAdditionalTimeout(InternalStreamConnection.java:579) ~[mongodb-driver-core-4.4.2.jar:na]
    at com.mongodb.internal.connection.InternalStreamConnection.receiveCommandMessageResponse(InternalStreamConnection.java:415) ~[mongodb-driver-core-4.4.2.jar:na]
    at com.mongodb.internal.connection.InternalStreamConnection.sendAndReceive(InternalStreamConnection.java:342) ~[mongodb-driver-core-4.4.2.jar:na]
    at com.mongodb.internal.connection.CommandHelper.sendAndReceive(CommandHelper.java:96) ~[mongodb-driver-core-4.4.2.jar:na]
    at com.mongodb.internal.connection.CommandHelper.executeCommand(CommandHelper.java:44) ~[mongodb-driver-core-4.4.2.jar:na]
    at com.mongodb.internal.connection.InternalStreamConnectionInitializer.initializeConnectionDescription(InternalStreamConnectionInitializer.java:131) ~[mongodb-driver-core-4.4.2.jar:na]
    at com.mongodb.internal.connection.InternalStreamConnectionInitializer.startHandshake(InternalStreamConnectionInitializer.java:73) ~[mongodb-driver-core-4.4.2.jar:na]
    at com.mongodb.internal.connection.InternalStreamConnection.open(InternalStreamConnection.java:182) ~[mongodb-driver-core-4.4.2.jar:na]
    at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.lookupServerDescription(DefaultServerMonitor.java:188) ~[mongodb-driver-core-4.4.2.jar:na]
    at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:152) ~[mongodb-driver-core-4.4.2.jar:na]
    at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]
Caused by: java.net.SocketException: Socket is closed
    at java.base/java.net.Socket.setSoTimeout(Socket.java:1154) ~[na:na]
    at java.base/sun.security.ssl.BaseSSLSocketImpl.setSoTimeout(BaseSSLSocketImpl.java:637) ~[na:na]
    at java.base/sun.security.ssl.SSLSocketImpl.setSoTimeout(SSLSocketImpl.java:75) ~[na:na]
    at com.mongodb.internal.connection.SocketStream.read(SocketStream.java:133) ~[mongodb-driver-core-4.4.2.jar:na]
    at com.mongodb.internal.connection.InternalStreamConnection.receiveResponseBuffers(InternalStreamConnection.java:718) ~[mongodb-driver-core-4.4.2.jar:na]
    at com.mongodb.internal.connection.InternalStreamConnection.receiveMessageWithAdditionalTimeout(InternalStreamConnection.java:576) ~[mongodb-driver-core-4.4.2.jar:na]
    ... 10 common frames omitted

这是我的 application.properties 文件

spring.data.mongodb.uri=mongodb+srv://denver:*****@product-service.wt2swod.mongodb.net/?retryWrites=true&w=majority
spring.data.mongodb.database=product-service

eureka.client.fetch-registry=true
eureka.client.service-url.defaultZone=http://localhost:8761/eureka

spring.application.name=product-service
server.port=0

我试图添加这些属性但从未奏效

@SpringBootApplication(exclude = {
  MongoAutoConfiguration.class, 
  MongoDataAutoConfiguration.class
})

我建议您 -> 将 socketKeepAlive 设置为 true(在最新版本的本机驱动程序中默认为 true)-> 设置 maxConnectionIdleTime <.net.ipv4.tcp_keepalive_time 这样您的 JVM 将获得连接而不是反过来。

当我通过本地机器连接到 Atlas 集群时,我遇到了同样的问题。 我不得不再次通过 Atlas 仪表板将我的 IP 地址列入白名单。

将您当前的 IP 地址列入您的 mongo 数据库集群中的白名单

查看本文中的“将您当前的 IP 地址列入您的 mongo 数据库集群中的白名单”以获取更多信息。 https://baraksaidoff.medium.com/fixing-mongoserverselectionerror-while-connecting-mongodb-with-node.js-213aaf0bf596

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM