开发者社区> 问答> 正文

MongoDB连接问题,prematurely reached end of stream

com.mongodb.MongoSocketReadException: Prematurely reached end of stream

com.mongodb.connection.SocketStream.read(SocketStream.java:88)
com.mongodb.connection.InternalStreamConnection.receiveResponseBuffers(InternalStreamConnection.java:491)
com.mongodb.connection.InternalStreamConnection.receiveMessage(InternalStreamConnection.java:221)
com.mongodb.connection.CommandHelper.receiveReply(CommandHelper.java:134)
com.mongodb.connection.CommandHelper.receiveCommandResult(CommandHelper.java:121)
com.mongodb.connection.CommandHelper.executeCommand(CommandHelper.java:32)
com.mongodb.connection.InternalStreamConnectionInitializer.initializeConnectionDescription(InternalStreamConnectionInitializer.java:83)
com.mongodb.connection.InternalStreamConnectionInitializer.initialize(InternalStreamConnectionInitializer.java:43)
com.mongodb.connection.InternalStreamConnection.open(InternalStreamConnection.java:115)
com.mongodb.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:127)

展开
收起
佚名4918 2021-10-19 16:12:55 3436 0
1 条回答
写回答
取消 提交回答
  • 网络规划设计师、敏捷专家、CISP、ITSS服务经理、ACA全科目、ACP4项、ACE、CBP、CDSP、CZTP等。拥有 PRINCE2 Foundation/Practitioner、CCSK、ITIL、ISO27001、PMP等多项国际认证。 专利5+、期刊10+、知识产权师。核心期刊审稿人。

    您好,因为mongo没有配置空闲连接时间,而spring boot 默认的空闲连接时间为0。当连接闲置一段时间,由于防火墙或者负载均衡的原因,导致连接被关闭,而客户端并不知道,当客户端继续使用这个关闭的连接进行读写时就会出错。所以可以设置连接闲置时间,当超过这个闲置时间客户端主动关闭连接,下次使用时重新建立连接,这样可以有效避免连接失效的问题。

    1.如果使用mongo 2.x的配置时,增加设置:

    spring.data.mongodb.prepare.maxConnectionIdleTime=60000
    spring.data.mongodb.prepare.maxConnectionLifeTime=0
    
    

    2.写一个配置类设置空闲连接时间

    @Configuration
    public class MongoCongig {
     
        @Bean
        public MongoClientOptions mongoOptions() {
            return MongoClientOptions.builder().maxConnectionIdleTime(3000).build();
     
        }
    
    

    3.如果使用mongo 3.x 配置:

    spring.data.mongodb.uri=mongodb://[username:password@]host1[:port1][,hostN[:portN]]][/[database[.collection]][?options]]
    
    2021-10-19 16:20:19
    赞同 1 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
开源数据库 MongoDB 专场 MongoDB疑难杂症分析及优化 立即下载
MongoDB多数据中心的方案选型之路 立即下载
饿了么高级架构师陈东明:MongoDB是如何逐步提高可靠性的 立即下载

相关镜像