Karp 的技术博客

问题复盘 :

 客户端服务A -> 中转服务B -> 终端服务C.
  1. 服务A 请求 服务B (超时 6秒) 没有拿到回包数据 , 连续请求8次 耗时48秒
  2. 服务B 请求 服务C (无超时) nginx 日志查出 有8条请求超时 分别为 50秒 43秒 37秒 ...
  3. 服务C 存在Mysql 锁等待, 原因在于 http服务 和 cli脚本服务 同时操作同一条数据 锁等待默认50秒超时.

一. 发生问题 锁等待时间太久 导致重复请求

解 : 锁等待问题 缩短调整锁等待超时时间30秒, 调大超时请求时间至15秒

二. 锁等待超时后 拿数据方法返回null 导致脏读问题

解 : 判断返回值null 抛出异常防止脏读问题

mysql

版权属于:karp
作品采用:本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
更新于: 2024年10月18日 06:59
8

目录

来自 《Mysql Lock wait timeout 锁等待坑》