Redis重启Redisson出错:Unable to send command!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis重启Redisson出错:Unable to send command!相关的知识,希望对你有一定的参考价值。
参考技术A 最近在公司开发环境发现一个问题,是这样的,开发环境的机器不断打日志,由于日志的定时清理不及时,导致磁盘满了,然后redis由于没法持久化,所以就连不上了,这个时候发现之后我们重启了redis,然后就回家了。第二天应用在使用redisson的分布式锁的时候就发现错误: org.redisson.client.WriteRedisConnectionException: Unable to send command! ,就是分布式锁的命令无法执行,导致许多业务都出现问题。
一开始以为是redis出问题,检查了一下,并重启了一下,还是有问题,最后重启某个微服务之后发现没问题了,到这里定位到是redisson连接管理出问题了,但是具体如何解决还一脸懵逼。
看了错误堆栈:
就知道关闭通道的时候出问题,但是具体什么原因不知道,搜索引擎老师也不知所措
最终,在redisson的github仓库的issue中找到了答案:
The connection not reconnect #1811
刚好我们使用的redisson版本也是 3.9.1 ,这个issue发生提到的错误,问题的出现基本和我遇到的一致,并且在 Fixed - connection is not reconnected #1811 中解决了,所以,这样子,升级!搞定!
问题的主要原因是:在redis出问题之后,watchdog发现连接无效之后,然后打印了一个警告日志之后,就没法有自动重连了,导致继续使用该连接的时候出问题,问题解决,ConnectionWatchdog.channelInactive.tryReconnect方法:
解决版本如下,如果遇到相同的问题可以选择一个升级:
redisson-3.11.3、redisson-3.11.2、redisson-3.11.1、redisson-3.11.0、redisson-3.10.7、redisson-3.10.6、redisson-3.10.5、redisson-3.10.4、redisson-3.10.3、redisson-3.10.2、redisson-3.10.1、redisson-2.15.2、redisson-2.15.1
Redisson Redis 客户端
Redisson 2.3.0 发布了,勤快学qkxue.net发现Redisson 是基于 Redis 服务之上构建的分布式、可伸缩的 Java 数据结构,高级的 Redis 客户端。
该版本更新内容如下:
Feature - new service added RExecutorService. More info about it here
Feature - new service added RScheduledExecutorService. More info about it here
Feature - new service added RLiveObjectService. More info about it here (big thanks to Rui Gu for this amazing feature)
Feature - new object added RBoundedBlockingQueue. More info about it here
Feature - Redis deployment tool. More info about it here
Feature - Cluster management tool. More info about it here
Feature - Avro and Smile codecs added
Breaking api change - all config classes moved to org.redisson.config package
Breaking api change - all classes moved from org.redisson.core to org.redisson.api package
Breaking api change - switched from io.netty.util.concurrent.Future to org.redisson.api.RFuture interface
Fixed - division by zero in WeightedRoundRobinBalancer (thanks to Shailender R Bathula)
详情点击:
https://github.com/mrniko/redisson/blob/master/CHANGELOG.md
下载:
以上是关于Redis重启Redisson出错:Unable to send command!的主要内容,如果未能解决你的问题,请参考以下文章