在某一天下午发了一个 版本,版本更新内容try catch异常返回错误信息。
发完版本后大概10分钟左右,所有访问不了,通过日志分析redis连接不上(错误信息图一),最后确定把redis连接池数据改大,服务部分功能能使用,通过日志分析mysql事务一直未提交或者回滚(错误信息图二),一直在等待获取锁,让运维同事先kil,但是没有好转,我们就怀疑是mq消息并发抢资源死锁,
长事务问题,我们就把消息先存档,问题还是没有得到解决,我们就尝试重启数据库,还是没有得到解决,分析原因是事务没有提交
我们怀疑图三的锁了,通过图三的key+lock(LiveSellGoodsDTO~lock)里面查找发现有一个key清除redis key就好了,@CacheEvict注解allEntries = true会加锁,没搞明白锁为什么没有释放
(图一)
(图二)
(图三)