Unexpected end of stream这个错误的原因定位到的是:

edis服务器端已经关闭了客户端的连接,而客户端不知道依然拿着原来的连接去访问redis服务器,结果就会报出这个exception。

在redis.conf配置中有两个参数和其有关

1、client-output-buffer-limit

对于Redis服务器的输出(也就是命令的返回值)来说,其大小通常是不可控制的。有可能一个简单的命令,能够产生体积庞大的返回数据。另外也有可能因为执行了太多命令,导致产生返回数据的速率超过了往客户端发送的速率,这是也会导致服务器堆积大量消息,从而导致输出缓冲区越来越大,占用过多内存,甚至导致系统崩溃。redis有以下两种限制来避免出现这种情况,并且不同类型的客户端可以采取不同的配置。

  1. 大小限制:若客户端缓冲区超过某一个设定的值,直接关闭客户端连接。

  2. 持续性限制:若客户端缓冲区连续一定时间内一直超过某个设定的值时,则关闭客户端连接。


client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60

edis把客户端分为3种,一种是普通的客户端,比如应用程序获取的jedis连接、普通的redis-cli,上面配置的三个0意思是对于客户端缓冲区无限制;第二种slave客户端,上面配置的3个参数的意思是若缓冲区超过256m则redis服务器直接关闭客户端连接,或者持续60s缓冲区一直超过64m也会关闭客户端连接。第三种是pub/sub客户端配置。

2、timeout

redis为了避免客户端连接数过多,有一个timeout配置,意思是如果连接的空闲时间超过了timeout的值,则关闭连接。默认配置是0,意思是没有超时限制,永远不关闭连接。生产上显然不会配置0,我们生产上配置的是120。这个timeout参数配置,要跟客户端创建的连接池的参数配合起来一起使用。

#redis configure
jedis.pool.host=10.50.**.***
jedis.pool.port=19000
jedis.pool.config.maxTotal=6000
jedis.pool.config.maxIdle=200
jedis.pool.config.minIdle=50
jedis.pool.config.maxWaitMillis=10000jedis.pool.waitTimeout=60000server.session-timeout=600
server.tomcat.max-http-post-size=20000000

Unexpected end of stream 溯源相关推荐

  1. 连接池你用对了吗?一次Unexpected end of stream异常的排查

    连接池你用对了吗?一次Unexpected end of stream异常的排查 参考文章: (1)连接池你用对了吗?一次Unexpected end of stream异常的排查 (2)https: ...

  2. 一次redis连接配置修改引发的redis.clients.jedis.exceptions.JedisConnectionException: Unexpected end of stream.异常

    一次redis连接配置修改引发的redis.clients.jedis.exceptions.JedisConnectionException: Unexpected end of stream.异常 ...

  3. 图片上传unexpected end of stream

    第二次上传头像图片的时候出现 unexpected end of stream 解决办法: 将第一次图片上传成功后做以下操作即可: mBitmapFile.delete(); mBitmapFile ...

  4. redis报错:jedis connection exception unexpected end of stream

    一般的话,原因是你在spring中把jedis客户端配置成了单例模式(singleton),所以当在极短时间内,有多个请求连续发送过来时,jedis就会报错,说一个连接还没结束. 所以正确的配置是,将 ...

  5. java.io.IOException: unexpected end of stream on https://xxx.xxx.xxx.xxx:84/

    错误描述: java.io.IOException: unexpected end of stream on https://xxx.xxx.xxx.xxx:84/...at okhttp3.inte ...

  6. OkHttp3错误异常: java.net.ProtocolException: unexpected end of stream 源码分析

    之前在项目中调试部分上传附件的接口时会遇到unexpected end of stream错误,在项目所使用的网络框架是我基于OkGo封装的一个网络请求库,而OkGo内部则其实是基于OkHttp封装的 ...

  7. Android断点下载时异常:java.io.IOException: unexpected end of stream,请问该怎么解决

    使用HttpURLConnection做断点下载大文件时,经常报如下异常: 且在报该异常后,我启动重新下载机制,下载过程中,每隔5分钟就报一次该异常: 等到文件下载结束后,文件已经损坏掉.但是当我屏蔽 ...

  8. Volley NoConnectionError(IOException:unexpected end of stream on Connection)原因之一与解决方案

    在使用Volley框架进行网络请求的时候,在小米note2(6.0.1)上报错(get请求),其他手机正常(华为--8.0以上): 刚开始因为一部分请求失败,一部分正常,而且是最近出现的问题,想想最近 ...

  9. 从 Android 静音看正确的查bug的姿势?

    0.写在前面 没抢到小马哥的红包,无心回家了,回公司写篇文章安慰下自己TT..话说年关难过,bug多多,时间久了难免头昏脑热,不辨朝暮,难识乾坤...艾玛,扯远了,话说谁没踩过坑,可视大家都是如何从坑 ...

最新文章

  1. LeetCode实战:逆波兰表达式求值
  2. (七)Servlet过滤器
  3. DS博客作业07--查找
  4. 可能是目前轻量级弹幕控件中功能最强大的一款
  5. 打印N个数组整体最大的TopK
  6. Maven build中隐藏的SAP UI5 JavaScript merge任务
  7. 前端学习(3259):js高级教程(3)typeof
  8. UWP开发入门教程备忘
  9. Tensorflow object detection API 搭建自己的目标检测模型并迁移到Android上
  10. 如何删除下一页分节符_word 2010高级应用:分节符的使用
  11. 集群搭建预备操作:在私有云上创建与配置虚拟机
  12. 【IoT】产品模型:基于 ARM 的音视频采集与传输系统
  13. 拆解兼容Qi充电标准的三星无线充电器
  14. 网页一键分享按钮HTML代码
  15. 使用搜狗接口爬取微信公众号
  16. [SSL_CHX][2021-08-25]车厢重组
  17. html5页面适配方法,H5案例分享:HTML5移动页面适配方法
  18. node.js解析word文档
  19. 【求职】搜狗 C++反向面经
  20. LAMP 技术简介(4)

热门文章

  1. 【WebGIS】JavaScript地理坐标的转换:GCJ-02火星坐标系和WGS-84坐标系转换关系
  2. 光线追踪 embree编译教程
  3. [计算机毕业设计]机器学习期货大数据的成交量优化分析研究
  4. 茴香豆的“茴”字有三种写法
  5. asp毕业设计—— 基于asp+access的网上考试系统设计与实现(毕业论文+程序源码)——网上考试系统
  6. SVN版本库的异地备份
  7. TVS二极管-百度百科
  8. 史上最全| 14种自动化分拣系统合集|拿走!
  9. 网络工程毕业设计 SSM勤工助学管理系统(源码+论文)
  10. 分类、推荐系统评测指标—准确率(Precision)、召回率(Recall)、F值(F-Measure) /(F-score)