问题复盘 :
- 服务A 请求 服务B (超时 6秒) 没有拿到回包数据 , 连续请求8次 耗时48秒
- 服务B 请求 服务C (无超时) nginx 日志查出 有8条请求超时 分别为 50秒 43秒 37秒 ...
- 服务C 存在Mysql 锁等待, 原因在于 http服务 和 cli脚本服务 同时操作同一条数据 锁等待默认50秒超时.
一. 发生问题 锁等待时间太久 导致重复请求
解 : 锁等待问题 缩短调整锁等待超时时间30秒, 调大超时请求时间至15秒
二. 锁等待超时后 拿数据方法返回null 导致脏读问题
解 : 判断返回值null 抛出异常防止脏读问题