Deadlock found when trying to get lock(死锁)问题解决
今天压测用户中心的登录接口。发现这个接口在并发下几乎不可用,错误率70%。
查看后台日志全是:
登录接口出现死锁了。
看了下代码,登录中做了更新用户登录时间,插入用户log。查询数据库,发行用户更新和插入log都会lock wait
判断可能是在压测同一个用户登录时,某个请求中的事务读取到了另一个请求里事务未提交的数据。从而需要等待之前的事务提交。(幻读)
然后将事务隔离机制改成SERIALIZABLE。
@Transactional(isolation= Isolation.SERIALIZABLE)。
然而并不能解决问题。
后来发现问题出现在记录用户日志上
Deadlock found when trying to get lock(死锁)问题解决相关推荐
- Java多线程、高并发秒杀时MySQL出现死锁原因(Deadlock found when trying to get lock)及对应解决方案
1. 死锁背景 1.1 在做高并发秒杀中创建订单.减库存步骤时出现异常:MySQLTransactionRollbackException: Deadlock found when trying to ...
- Deadlock found when trying to get lock; try restarting transaction主要要是死锁问题呢怎么解决
目录 问题描述: 问题发生原因: 问题日志详情: 问题描述: 生产启动的时候,定期排查的 一些日志,发现一个问题呢,主要是加锁了,很奇怪,主要是业务数据的一般的CURD.至于其他的很奇怪!主要查看业务 ...
- mysql deadlock found_mysql死锁 Deadlock found when trying to get lock; try restarting transaction
研究了一下mysql的死锁,记录如下. 比如有2个事务,执行的sql分别如下: 这里用 #N 标识sql语句的执行顺序,下面开启两个mysql客户端连接,其中表的id为主键. 事务1 START TR ...
- mysql报错:Deadlock found when trying to get lock;
发现问题 最近在补以前数据的时候程序突然报如下错误: 1 2 3 4 5 [2017-02-10 13:12:06.678] [INFO] mysqlLog - update tbl_playerda ...
- Deadlock found when trying to get lock; try restarting transaction
报错详情 Error updating database. Cause: com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException ...
- MYSQL中一个特殊的MDL LOCK死锁案列
水平有限 如有错误请指出共同探讨 版本:5.7.19 mysql+innodb 本文中所说的上文是如下文章,也是讨论MDL LOCK死锁的基础,包含了很多MDL LOCK的基础知识建议 好好阅读 ht ...
- MySQL遇到Deadlock found when trying to get lock,解决方案
MySQL遇到Deadlock found when trying to get lock,解决方案 参考文章: (1)MySQL遇到Deadlock found when trying to get ...
- C#中lock死锁实例教程
C#中lock死锁实例教程 http://www.jb51.net/article/54309.htm posted on 2016-10-24 23:00 时空观察者9号 阅读(...) 评论(.. ...
- mysql deadlock found when trying to get lock 问题排查
mysql deadlock found when trying to get lock 问题排查 1 获 取锁等待情况 可以通过检查 table_locks_waited和table_locks_i ...
- insert ... on duplicate key update产生death lock死锁原理
转载自 insert ... on duplicate key update产生death lock死锁原理 前言 编辑 我们在实际业务场景中,经常会有一个这样的需求,插入某条记录,如果已经存在了则 ...
最新文章
- torch量化的流程
- python判断质数的函数并输出_【python基础】|| 用python判断输入的数是否为素数
- oracle 日期改字符格式_oracle怎么把数值型日期转换成日期字符型
- python中turtle画圆填充颜色_用Python中的画图工具turtle绘制八卦图
- 简单的Client / Server 使用 linux 伯克利 socket实现
- DFS实现floodfill算法
- 新网 云服务器,云服务器的使用教程
- python timer 死掉_Python定时事件 Timer sched
- Linux开启文件共享服务
- Mac----已被macOS使用
- cmd怎么使用post请求’_flutter中dio的post请求方式使用总结
- fedora 安装google浏览器失败,报错
- Redis学习-1 NoSQL
- Android 开发之 ---- 底层驱动开发(一)
- 听我给你普及师父、师傅和讲师、教师的区别
- mysql 1032 1062_mysql slave频繁报1032_1062错误
- Spring Cloud深入浅出
- 两种web crawler方案
- 主流视频通话SDK比较【转】
- 排球比赛计分程序功能说明书
热门文章
- win32 c语言创建线程,【原创】win32线程及线程内核对象
- GOOGLE | COT(chain of thought)开山之作,利用思维链提升复杂问题推理能力
- 【COT】Chain-of-Thought Prompting Elicits Reasoning in Large Language Models
- Halo 博客系统部署日记--Docker
- 基于APM32F407的计算模块
- No.026<软考>《(高项)备考大全》【第10章】项目沟通和干系人管理(第2部分-干系人管理)
- led大屏按实际尺寸设计画面_实用!LED显示屏尺寸规格及计算方法
- Urho2D和 Physics2D
- vuex之webApp购物流程实现
- Spark GraphX 快速入门