最近开发环境使用redisson(版本是2.8.0),在部署一段时间(半个小时左右),获取分布式锁会报超时异常(org.redisson.client.RedisTimeoutException: Redis server response timeout (3000 ms) occured for command):

2018-06-28 15:01:55.919 [http-nio-8081-exec-6] ERROR [com.skylink.fincredit.controller.JoinThirdController.getLock(JoinThirdController.java:169)] exception .....
org.redisson.client.RedisTimeoutException: Redis server response timeout (3000 ms) occured for command: (EVAL) with params: [if (redis.call('exists', KEYS[1]) == 0) then redis.call('hset', KEYS[1], ARGV[2], 1); redis.call('pe..., 1, sl.redis.locker.finance_acc_customer11000018_3333333333, 60000, 5b4c46fd-d283-49f0-bf98-d7f160df863e:37] channel: [id: 0xf02a572d, L:/192.168.15.126:54288 - R:/192.168.20.66:7301]
at org.redisson.command.CommandAsyncService$11.run(CommandAsyncService.java:704) ~[redisson-3.6.5.jar:?]
at io.netty.util.HashedWheelTimer$HashedWheelTimeout.expire(HashedWheelTimer.java:663) ~[netty-common-4.1.22.Final.jar:4.1.22.Final]
at io.netty.util.HashedWheelTimer$HashedWheelBucket.expireTimeouts(HashedWheelTimer.java:738) ~[netty-common-4.1.22.Final.jar:4.1.22.Final]
at io.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:466) ~[netty-common-4.1.22.Final.jar:4.1.22.Final]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_66]
2018-06-28 15:01:58 ERROR [com.skylink.common.locker.redisson.RedissonLocker.release(RedissonLocker.java:72)] Locker release(finance_acc_customer11000018_3333333333) throw Exception.
org.redisson.client.RedisTimeoutException: Redis server response timeout (3000 ms) occured for command: (EVAL) with params: [if (redis.call('exists', KEYS[1]) == 0) then redis.call('publish', KEYS[2], ARGV[1]); return 1; end;..., 2, sl.redis.locker.finance_acc_customer11000018_3333333333, redisson_lock__channel:{sl.redis.locker.finance_acc_customer11000018_3333333333}, 0, 30000, 5b4c46fd-d283-49f0-bf98-d7f160df863e:37] channel: [id: 0x34dfe77f, L:/192.168.15.126:54281 - R:/192.168.20.66:7301]
at org.redisson.command.CommandAsyncService$11.run(CommandAsyncService.java:704)
at io.netty.util.HashedWheelTimer$HashedWheelTimeout.expire(HashedWheelTimer.java:663)
at io.netty.util.HashedWheelTimer$HashedWheelBucket.expireTimeouts(HashedWheelTimer.java:738)
at io.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:466)
at java.lang.Thread.run(Thread.java:745)
2018-06-28 15:01:59.004 [http-nio-8081-exec-6] INFO [com.skylink.fincredit.logger.LoggingAspect.logAround(LoggingAspect.java:85)] Exit: com.skylink.fincredit.controller.JoinThirdController.getLock() with result = {retCode=SUCCESS, retMsg=操作成功 }
2018-06-28 15:02:14.098 [redisson-netty-1-8] ERROR [org.redisson.client.handler.CommandsQueue.exceptionCaught(CommandsQueue.java:139)] Exception occured. Channel: [id: 0xf02a572d, L:/192.168.15.126:54288 - R:/192.168.20.66:7301]
java.io.IOException: 远程主机强迫关闭了一个现有的连接。

查看资料,该问题在2017年11月23号已经修复(参见:https://github.com/redisson/redisson/issues/946),更新ressdion到3.6.5,设置setPingConnectionInterval为60秒:

测试后问题还是没有解决,继续在GitHub上查看原代码,发现在3.6.5版本没有修改完全,存在bug,查看在18年4月27号修复了:

继续升级版本到3.7.3,测试问题已经解决。

在redisson升级的过程中,报如下错:

redisson验证uri的方式变了,在2.8.0中使用的是ip:port格式,在3.6.5中使用的是rediss://ip:port,需要添加前缀。

redis连接超时,只有在NAT网络环境才会出现。

Redisson碰到的问题的更多相关文章

  1. zk 起别名时候碰到的问题

    第一次搭建时候都是用的ip,没什么问题,看到别人都是用的别名,于是也想试试把ip改成别名.然而 其中碰到的问题 ,快一周了才解决,现在记录下: 1.改主机别名 一直以为 修改 /etc/hosts 里 ...

  2. 商城项目:装nginx时碰到的各种问题

    因为项目需要,我们要在linux上nginx.碰到了各种问题.在这里一一记录下来. 首先我要开启我的两个虚拟机,开起来之后.用主机的SeureCRT去连接.都是好的. 但是我在虚拟机机上去ping I ...

  3. 每日一记-mybatis碰到的疑惑:String类型可以传入多个参数吗

    碰到一个觉得很疑惑的问题,Mybatis的parameterType为String类型的时候,能够接收多个参数的吗? 背景 初学Mybatis的时候,看的教程和书籍上都是在说基本的数据类型如:int. ...

  4. 最近碰到的一些 SSL 问题记录

    最近碰到一些 SSL 的小问题,特记录下. 我们有个 Java 实现的 SSL TCP 服务端,为客户端(PC.Android 和 iOS)提供 SSL 接入连接服务.最近有用户反馈其手机上 App ...

  5. 安装 Linux 时碰到的硬盘分区的陷阱及应对

    硬盘分区的陷阱及应对 之所以想到写这篇,是因为本人在折腾 Linux 系统的过程中,有多次掉入硬盘分区的陷阱的经历.最近几天,再一次掉入坑中,折腾了两天才从坑中爬出来.经过多方查询资料,终于弄明白了硬 ...

  6. iOS真机测试碰到错误linker command failed with exit code 1 (use -v to see invocation)

    在模拟器上运行正常,但是在模拟器上就会报错,这是因为xocde7之后增加了一个bitcode,bitcode是被编译程序的一种中间形式的代码.包含bitcode配置的程序将会在App store上被编 ...

  7. Asp.Net MVC及Web API框架配置会碰到的几个问题及解决方案(转)

      前言 刚开始创建MVC与Web API的混合项目时,碰到好多问题,今天拿出来跟大家一起分享下.有朋友私信我问项目的分层及文件夹结构在我的第一篇博客中没说清楚,那么接下来我就准备从这些文件怎么分文件 ...

  8. Tomcat基本入门知识及发布,虚拟访问及启动碰到的错误,虚拟目录,虚拟路径,各种Tomcat的配置

    Tomcat容器入门介绍 转自javaresearch.com由timgball 整理 Tomcat是一个免费的开源Web服务器,最新版本是5.5.1,支持Servlet2.4,JSP2.0,非常适合 ...

  9. 从Eclipse迁移到Android Studio碰到的问题记录

    背景: 1. 一直在做.NET的开发,工作之余,学习了一下Android开发,写了一些Demo,当时用的Eclipse开发工具:这两天,刚好项目不是很忙,就打算把之前写的Demo,迁移到Android ...

随机推荐

  1. SpringMVC中注解@RequestBody和@ResponseBody的使用区别

    首先上源码 在面试时经常会问到我们如何使用SpringMVC将Http请求转换为java对象,或者又是问如何将结果转换为java的呢? SpringMVC在接收到请求之后HandlerMapping像 ...

  2. CentOS7+CDH5.14.0安装全流程记录,图文详解全程实测-6CM安装前环境检查

    检查环境 在正式开始安装CDH之前最好先检查一下能不能相互免密ssh,以及防火墙是否关闭,集群中的时间是否统一,java版本是否是oracle的版本,主节点mysql是否安装正确等. ssh测试 例如 ...

  3. Linux-Centon7常用命令

    查看本机IP # ip addr 进入目录 # cd /xxx/xxx 编辑文件,打开文件后,按“Insert”键,进入输入模式(最下面会显示INSERT),将ONBOOT选项改为yes,然后按“Es ...

  4. 2018-2019-2 20175234 实验二《Java面向对象程序设计》实验报告

    目录 实验内容 实验要求 实验步骤 实验收获 参考资料 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 解设计模式 实验 ...

  5. MVC4 decimal 精度

    MVC默认为小数点 后2位 更改设置 在我们现在的MovieDBContext类中重载OnModelCreating方法,代码如下所示.public class MovieDBContext : Db ...

  6. Python开发——目录

    Python基础 Python开发——解释器安装 Python开发——基础 Python开发——变量 Python开发——[选择]语句 Python开发——[循环]语句 Python开发——数据类型[ ...

  7. AWR不能自动生成快照

    尝试手工生成,报错sysaux表空间满. BEGIN DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT (); END; 检查DBA_HIST_SNAPSHOT和dba ...

  8. textarea下高度自适应

    1,背景:textarea的高度不会随内容的增加而自适应,会出现滚动条 解决方案: 1)使用div模拟textarea  使用h5的属性    <div contenteditable=&quo ...

  9. 基础汇编指令(16bit 32bit 64bit)

    (zz from http://blog.luoyuanhang.com/) ##常见寄存器 寄存器 16位 32位 64位 累加寄存器 accumulator AX EAX RAX 基址寄存器 ba ...

  10. MySQL函数转储存(当前月数据同步)

    BEGIN declare a1 int default 0;#第一次循环的循环变量 declare a2 int default 0; declare b1 int default 0; decla ...