生产环境报错:

java.util.concurrent.ExecutionException: org.redisson.client.RedisConnectionClosedException: Command succesfully sent, but channel [id: 0x32092d6e, L:/xx:54534 ! R:xx/xx] has been closed!

java.lang.IllegalMonitorStateException: attempt to unlock lock, not locked by current thread by node id: 8820f3a0-4111-44d0-8642-efeba751eef1 thread-id: 566
		      

解决办法

redission配置增加ping连接检测,解决连接中断问题。

clusterServersConfig.setPingConnectionInterval(60000);

unlock增加判断,确认lock状态并且是当前线程持有。

if (lock.isLocked() && lock.isHeldByCurrentThread()) {
   lock.unlock();
}

参考:

https://github.com/redisson/redisson/issues/2268