项目场景:

使用springboot连接mongodb数据库


问题描述

在开始的时候使用的是本地连接,yaml中配置如下:

spring:data:mongodb:authentication-database: adminhost: 192.168.0.101port: 27017database: testusername: adminpassword: '123456'

正常连接没有问题,但是迁移到阿里云发现报错:Prematurely reached end of stream​​​​​​​


原因分析:

在网上搜索很多都是连接一段时间出现了该错误信息,主要的原因可能是连接超时于是进行配置

socketKeepAlive = true;
​​​​​​​socketTimeout = 30000;

发现没有解决问题

也有说连接闲置一段时间,由于防火墙或者负载均衡的原因,导致连接被关闭,而客户端并不知道,当客户端继续使用这个关闭的连接进行读写时就会出错。

解决办法就是设置连接闲置时间,当超过这个闲置时间客户端主动关闭连接,下次使用时重新建立连接,这样可以有效避免连接失效的问题。

在spring boot中配置MongoClientOptions的bean如下:

@Configuration
public class WechatMpConfiguration {@Beanpublic MongoClientOptions mongoOptions() {//将最大闲置超时时间设置3000msreturn MongoClientOptions.builder().maxConnectionIdleTime(3000).build();}
}

但是在做这些配置之前突然考虑一个问题,我这不是闲置,于是尝试连接客户端,发现同样报错,所以应该是连接时的错误

解决方案:

因为考虑到是使用的阿里云,而阿里云最喜欢的就是设置白名单,这时正好看到一篇文章说是也是多台服务器忘记追加白名单,所以也去试着加白名单

客户端连接测试ok,这时候启动spring测试正常

总结:

Prematurely reached end of stream 问题出现,就是未正常连接成功,所以先考虑白名单的问题,测试客户端时候正常连接,如果正常说明云端没有问题,这时在考虑配置问题,是否超时等

【mongodb】连接报错Prematurely reached end of stream相关推荐

  1. mongodb偶尔报错com.mongodb.MongoSocketReadException: Prematurely reached end of stream

    项目开发中,链接mongodb的项目,偶尔报错com.mongodb.MongoSocketReadException: Prematurely reached end of stream 报错的详细 ...

  2. mongodb连接报错:connect@src/mongo/shell/mongo.js:374:17

    mongodb部署在云服务器上一直可以用,今天重启了一下,不知道为什么一直连接不上,就很慌,报的这个错误代码,去百度了半天也没找到一样的情况,直接我使用了net start mongodb -整个人都 ...

  3. Navicat客户端PostgreSQL连接报错:Could not connect to server:Connection refused(0x00002740/10061)

    Navicat客户端PostgreSQL连接报错:Could not connect to server:Connection refused(0x00002740/10061) 遇到这样的问题应该怎 ...

  4. pl/sql dev连接报错Access violation at address 67614F04 in module 'oranls11.dll'

    这个可能是因为你的客户端安装了多个Oracle 软件导致, 还有一种可能是本地Oracle版本过低,连接的Oracle数据库版本过高. 这里排除第二种可能. 解决办法:  打开你的PL/SQL Dev ...

  5. 解决win7 64位操作系统下安装PL/SQL后连接报错问题: make sure you have the 32 bits oracle client installed

    解决win7 64位操作系统下安装PL/SQL后连接报错问题: make sure you have the 32 bits oracle client installed 参考文章: (1)解决wi ...

  6. pymysql模块操作数据库及连接报错解决方法

    pymysql模块操作数据库及连接报错解决方法 参考文章: (1)pymysql模块操作数据库及连接报错解决方法 (2)https://www.cnblogs.com/zgngg/p/10607859 ...

  7. oracle10g库连接报错

    oracle10g库连接报错 posted on 2014-01-01 20:08 秦瑞It行程实录 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com ...

  8. xshell进行ssh链接报错“所选的用户密钥未在远程主机上注册”处理

    xshell进行ssh链接报错"所选的用户密钥未在远程主机上注册"处理 一.报错情况 二.控制台登录主机 三.解决步骤 1.重新生成公私钥 2./root/.ssh/authori ...

  9. ftp连接报错:Windows无法访问此文件夹

    在zedboard上运行Linux系统,通过网线与PC端连接. 默认ftp地址是:192.168.1.10 通过FTP服务器访问该地址,报错:"ftp连接报错:Windows无法访问此文件夹 ...

  10. 解决X64操作系统PL/SQL连接报错问题 make sure you have the 32 bits oracle client installed

    1,去oracle官网下载 32bit的客户端 48MB左右. 2,在PLsql中设置  Oracle Home 和 OCI Library 3,在环境变量中增加2个系统变量:TNS_ADMIN 和  ...

最新文章

  1. AE 动画直接变原生代码:Airbnb 发布开源动画库 Lottie
  2. XenApp部署之配置XenApp Server
  3. 备忘录模式(Memento)的原版与简化版实现
  4. ubuntu~快捷键
  5. easyui datagrid
  6. 右键我的电脑,没有属性,解决方案
  7. 定义一个空切片_Python进阶:全面解读高级特性之切片
  8. mybatis jar包_springboot2整合mybatis-plus3踩到的坑
  9. linux内核多队列,Linux Kernel 中 Workqueue 使用系统默认队列和创建队列的方法
  10. Spring Bean的实例化时机与ApplicationContext中单例bean的延迟初始化
  11. 单项选择题标准化考试系统
  12. PTA Left-pad Java
  13. Android 11.0 app添加校验锁(输入密码才能进入app)
  14. 怎么删除拨号连接,取消掉宽带拨号?
  15. AutoLeaders控制组——C51单片机学习笔记--定时器串口通信LED点阵屏
  16. 数字图像处理王慧琴课后答案_清华大学出版社-图书详情-《数字图像处理(第3版)》...
  17. 2018Java面试题及答案【面试必看】
  18. java查询图片前台展示_Java +spring MVC 后台图片流在前台页面显示
  19. python小车行走_[PYTHON系列教程]→控制小车
  20. 京东手机销售数据分析,华为和三星的距离还有多远?

热门文章

  1. macOS 虚拟摄像头:CamTwist for Mac
  2. 如何把打开方式换成计算机程序,文件的打开方式
  3. [生存志] 第134节 兵锋十万踏匈奴
  4. 从零开始搭建一个Vue项目
  5. Android EagleEye笔记
  6. 中国大学慕课python答案 北京理工大学_中国大学MOOC慕课_Python语言程序设计_慕课答案...
  7. Graph U-Nets小结
  8. 力扣刷题 DAY_61 回溯
  9. office2010所做更改会影响共用模板normal
  10. Android小钢琴