【mongodb】连接报错Prematurely reached end of stream
项目场景:
使用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相关推荐
- mongodb偶尔报错com.mongodb.MongoSocketReadException: Prematurely reached end of stream
项目开发中,链接mongodb的项目,偶尔报错com.mongodb.MongoSocketReadException: Prematurely reached end of stream 报错的详细 ...
- mongodb连接报错:connect@src/mongo/shell/mongo.js:374:17
mongodb部署在云服务器上一直可以用,今天重启了一下,不知道为什么一直连接不上,就很慌,报的这个错误代码,去百度了半天也没找到一样的情况,直接我使用了net start mongodb -整个人都 ...
- Navicat客户端PostgreSQL连接报错:Could not connect to server:Connection refused(0x00002740/10061)
Navicat客户端PostgreSQL连接报错:Could not connect to server:Connection refused(0x00002740/10061) 遇到这样的问题应该怎 ...
- pl/sql dev连接报错Access violation at address 67614F04 in module 'oranls11.dll'
这个可能是因为你的客户端安装了多个Oracle 软件导致, 还有一种可能是本地Oracle版本过低,连接的Oracle数据库版本过高. 这里排除第二种可能. 解决办法: 打开你的PL/SQL Dev ...
- 解决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 ...
- pymysql模块操作数据库及连接报错解决方法
pymysql模块操作数据库及连接报错解决方法 参考文章: (1)pymysql模块操作数据库及连接报错解决方法 (2)https://www.cnblogs.com/zgngg/p/10607859 ...
- oracle10g库连接报错
oracle10g库连接报错 posted on 2014-01-01 20:08 秦瑞It行程实录 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com ...
- xshell进行ssh链接报错“所选的用户密钥未在远程主机上注册”处理
xshell进行ssh链接报错"所选的用户密钥未在远程主机上注册"处理 一.报错情况 二.控制台登录主机 三.解决步骤 1.重新生成公私钥 2./root/.ssh/authori ...
- ftp连接报错:Windows无法访问此文件夹
在zedboard上运行Linux系统,通过网线与PC端连接. 默认ftp地址是:192.168.1.10 通过FTP服务器访问该地址,报错:"ftp连接报错:Windows无法访问此文件夹 ...
- 解决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 和 ...
最新文章
- AE 动画直接变原生代码:Airbnb 发布开源动画库 Lottie
- XenApp部署之配置XenApp Server
- 备忘录模式(Memento)的原版与简化版实现
- ubuntu~快捷键
- easyui datagrid
- 右键我的电脑,没有属性,解决方案
- 定义一个空切片_Python进阶:全面解读高级特性之切片
- mybatis jar包_springboot2整合mybatis-plus3踩到的坑
- linux内核多队列,Linux Kernel 中 Workqueue 使用系统默认队列和创建队列的方法
- Spring Bean的实例化时机与ApplicationContext中单例bean的延迟初始化
- 单项选择题标准化考试系统
- PTA Left-pad Java
- Android 11.0 app添加校验锁(输入密码才能进入app)
- 怎么删除拨号连接,取消掉宽带拨号?
- AutoLeaders控制组——C51单片机学习笔记--定时器串口通信LED点阵屏
- 数字图像处理王慧琴课后答案_清华大学出版社-图书详情-《数字图像处理(第3版)》...
- 2018Java面试题及答案【面试必看】
- java查询图片前台展示_Java +spring MVC 后台图片流在前台页面显示
- python小车行走_[PYTHON系列教程]→控制小车
- 京东手机销售数据分析,华为和三星的距离还有多远?