JedisConnectionException Connection Reset
来源:互联网 发布:奥登cba数据 编辑:程序博客网 时间:2024/06/10 07:29
JedisConnectionException Connection Reset
使用Jedis的subscribe进行消息订阅时有时会抛出JedisConnectionException:Connection Reset
,查看redis-server控制台,发现有如下信息输出:
subscribe scheduled to be closed ASAP for outcoming of output buffer limits
从字面意思来看是消息输出的缓冲区已经超出了限制,所以订阅的链接被关闭了。这通常是由于消息的生产者生产的消息的速度快于消费的速度,导致消息积压,从而超出了Redis的限制。这是redis的一种自我保护机制,遇到这种情况下它就会关闭对应的连接。解决方式就是调整对应的缓冲区大小。关于缓冲区的说明在redis的配置文件redis.conf中有说明。以下是摘自其配置文件的说明。
# The client output buffer limits can be used to force disconnection of clients# that are not reading data from the server fast enough for some reason (a# common reason is that a Pub/Sub client can't consume messages as fast as the# publisher can produce them).## The limit can be set differently for the three different classes of clients:## normal -> normal clients including MONITOR clients# slave -> slave clients# pubsub -> clients subscribed to at least one pubsub channel or pattern## The syntax of every client-output-buffer-limit directive is the following:## client-output-buffer-limit <class> <hard limit> <soft limit> <soft seconds>## A client is immediately disconnected once the hard limit is reached, or if# the soft limit is reached and remains reached for the specified number of# seconds (continuously).# So for instance if the hard limit is 32 megabytes and the soft limit is# 16 megabytes / 10 seconds, the client will get disconnected immediately# if the size of the output buffers reach 32 megabytes, but will also get# disconnected if the client reaches 16 megabytes and continuously overcomes# the limit for 10 seconds.## By default normal clients are not limited because they don't receive data# without asking (in a push way), but just after a request, so only# asynchronous clients may create a scenario where data is requested faster# than it can read.## Instead there is a default limit for pubsub and slave clients, since# subscribers and slaves receive data in a push fashion.## Both the hard or the soft limit can be disabled by setting them to zero.client-output-buffer-limit normal 0 0 0client-output-buffer-limit slave 256mb 64mb 60client-output-buffer-limit pubsub 32mb 8mb 60
笔者遇到的是由于发布/订阅的消息超出了缓冲区的大小导致的,所以需要调整client-output-buffer-limit pubsub 32mb 8mb 60
。适当的调大对应的缓冲区大小即可。
阅读全文
0 0
- JedisConnectionException Connection Reset
- Connection reset
- Connection reset
- JedisConnectionException: java.net.ConnectException: Connection refused: connect
- Connection Reset的错误
- Reset Broadband Connection
- Connection reset by peer
- Connection reset by peer
- Connection reset by peer
- Connection reset by peer
- redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectException: Connection refu
- java.net.SocketException: Connection reset
- java.net.SocketException: Connection reset
- putty "connection reset by peer"
- ERROR:Connection reset by peer
- 再探Connection Reset By Peer
- webService中出现connection reset
- java.net.SocketException: Connection reset
- 静态代理
- 我的github page
- Adapter模式
- 软件设计模式概述
- 翻页功能测试用例
- JedisConnectionException Connection Reset
- java基础四
- Android--Dalivk和JVM虚拟机的区别
- JavaWeb实现短信验证
- HTML&CSS常见面试题及疑难解答
- Shell杂记
- 训练日记-25
- 客户端封装Fragment和Activity
- 如何在IntelliJ IDEA中使用.ignore插件忽略不必要提交的文件