org.redisson.client.WriteRedisConnectionException: Unable to send command!

org.redisson.client.WriteRedisConnectionException: Unable to send command!


利用redisson作为分布式锁。常时间未操作,报出如下错误:org.redisson.client.WriteRedisConnectionException: Unable to send command!
具体内容如下:

Caused by: org.redisson.client.WriteRedisConnectionException: Unable to send command! Node source: NodeSource [*********************] after 3 retry attempts
        at org.redisson.command.CommandAsyncService.checkWriteFuture(CommandAsyncService.java:837)
        at org.redisson.command.CommandAsyncService.access$200(CommandAsyncService.java:92)
        at org.redisson.command.CommandAsyncService$11$1.operationComplete(CommandAsyncService.java:794)
        at org.redisson.command.CommandAsyncService$11$1.operationComplete(CommandAsyncService.java:791)
        at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:511)
        at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:485)
        at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:424)
        at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:121)
        at io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetFailure(AbstractChannel.java:991)
        at io.netty.channel.AbstractChannel$AbstractUnsafe.write(AbstractChannel.java:873)
        at io.netty.channel.DefaultChannelPipeline$HeadContext.write(DefaultChannelPipeline.java:1365)
        at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:738)
        at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:730)
        at io.netty.channel.AbstractChannelHandlerContext.access$1700(AbstractChannelHandlerContext.java:38)
        at io.netty.channel.AbstractChannelHandlerContext$AbstractWriteTask.write(AbstractChannelHandlerContext.java:1127)
        at io.netty.channel.AbstractChannelHandlerContext$WriteAndFlushTask.write(AbstractChannelHandlerContext.java:1174)
        at io.netty.channel.AbstractChannelHandlerContext$AbstractWriteTask.run(AbstractChannelHandlerContext.java:1098)
        at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)
        at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404)
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:495)
        at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:905)
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
        ... 1 common frames omitted
Caused by: java.nio.channels.ClosedChannelException: null
        at io.netty.channel.AbstractChannel$AbstractUnsafe.write(...)(Unknown Source)

当前使用版本为redisson3.9.1

 <dependency>
     <groupId>org.redisson</groupId>
     <artifactId>redisson</artifactId>
     <version>3.9.1</version>
 </dependency>

查询github源码https://github.com/redisson/redisson,发现解决方案:

The connection not reconnect #1811

这个issue发生提到的错误,问题的出现基本和我遇到的一致,并且在Fixed - connection is not reconnected #1811中解决了,所以…!

问题总结
在redis出问题之后,watchdog发现连接无效之后,然后打印了一个警告日志之后,就没法有自动重连了,导致继续使用该连接的时候出问题,问题解决,ConnectionWatchdog.channelInactive.tryReconnect方法:
在这里插入图片描述
最后升级到:redisson-parent-3.11.6 redisson-3.16.1 redisson-3.16.0 redisson-3.15.6 redisson-3.15.5 redisson-3.15.4 redisson-3.15.3 redisson-3.15.2 redisson-3.15.1 redisson-3.15.0 redisson-3.14.1 redisson-3.14.0 redisson-3.13.6 redisson-3.13.5 redisson-3.13.4 redisson-3.13.3 redisson-3.13.2 redisson-3.13.1 redisson-3.13.0 redisson-3.12.5 redisson-3.12.4 redisson-3.12.3 redisson-3.12.2 redisson-3.12.1 redisson-3.12.0 redisson-3.11.6 redisson-3.11.5 redisson-3.11.4 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,搞定!!!

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
org.redisson.client.redisconnectionexception是一个Redisson客户端的异常类,表示无法连接到Redis服务器。 当出现这个异常时,代表Redisson客户端无法与Redis服务器建立连接,可能是由于以下原因: 1. 网络问题:可能是网络连接不稳定或者网络中断导致无法连接到Redis服务器。可以尝试检查网络连接状态,确保网络畅通。 2. Redis服务器配置问题:可能是Redis服务器配置错误导致无法连接。可以检查Redis服务器的配置文件,确保端口号、IP地址等配置正确。 3. Redis服务器未启动:如果Redis服务器未启动,就无法与之建立连接。可以检查Redis服务器是否已经启动,如果没有启动,则需要启动Redis服务器。 4. 防火墙或安全组问题:有些情况下,可能是防火墙或安全组设置导致无法连接。可以检查防火墙或安全组规则,确保允许Redis服务器的访问。 5. Redis服务异常:如果以上步骤都没有问题,那么可能是Redis服务器出现了异常。可以尝试重启Redis服务器,或者联系Redis服务器的管理员进行故障排查和修复。 总结起来,org.redisson.client.redisconnectionexception: unable to connect to redis ser表示无法连接到Redis服务器,可能是由网络问题、Redis服务器配置问题、Redis服务器未启动、防火墙或安全组问题或Redis服务异常导致的。解决这个问题的方法包括检查网络连接状态、Redis服务器配置、Redis服务器启动状态、防火墙或安全组设置以及联系Redis服务器管理员进行故障排查和修复。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值