今天压测用户中心的登录接口。发现这个接口在并发下几乎不可用,错误率70%。

查看后台日志全是:

登录接口出现死锁了。

看了下代码,登录中做了更新用户登录时间,插入用户log。查询数据库,发行用户更新和插入log都会lock wait

判断可能是在压测同一个用户登录时,某个请求中的事务读取到了另一个请求里事务未提交的数据。从而需要等待之前的事务提交。(幻读)

然后将事务隔离机制改成SERIALIZABLE。

@Transactional(isolation= Isolation.SERIALIZABLE)。

然而并不能解决问题。

后来发现问题出现在记录用户日志上

Deadlock found when trying to get lock(死锁)问题解决相关推荐

  1. Java多线程、高并发秒杀时MySQL出现死锁原因(Deadlock found when trying to get lock)及对应解决方案

    1. 死锁背景 1.1 在做高并发秒杀中创建订单.减库存步骤时出现异常:MySQLTransactionRollbackException: Deadlock found when trying to ...

  2. Deadlock found when trying to get lock; try restarting transaction主要要是死锁问题呢怎么解决

    目录 问题描述: 问题发生原因: 问题日志详情: 问题描述: 生产启动的时候,定期排查的 一些日志,发现一个问题呢,主要是加锁了,很奇怪,主要是业务数据的一般的CURD.至于其他的很奇怪!主要查看业务 ...

  3. mysql deadlock found_mysql死锁 Deadlock found when trying to get lock; try restarting transaction

    研究了一下mysql的死锁,记录如下. 比如有2个事务,执行的sql分别如下: 这里用 #N 标识sql语句的执行顺序,下面开启两个mysql客户端连接,其中表的id为主键. 事务1 START TR ...

  4. 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 ...

  5. Deadlock found when trying to get lock; try restarting transaction

    报错详情 Error updating database.  Cause: com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException ...

  6. MYSQL中一个特殊的MDL LOCK死锁案列

    水平有限 如有错误请指出共同探讨 版本:5.7.19 mysql+innodb 本文中所说的上文是如下文章,也是讨论MDL LOCK死锁的基础,包含了很多MDL LOCK的基础知识建议 好好阅读 ht ...

  7. MySQL遇到Deadlock found when trying to get lock,解决方案

    MySQL遇到Deadlock found when trying to get lock,解决方案 参考文章: (1)MySQL遇到Deadlock found when trying to get ...

  8. C#中lock死锁实例教程

    C#中lock死锁实例教程 http://www.jb51.net/article/54309.htm posted on 2016-10-24 23:00 时空观察者9号 阅读(...) 评论(.. ...

  9. mysql deadlock found when trying to get lock 问题排查

    mysql deadlock found when trying to get lock 问题排查 1 获 取锁等待情况 可以通过检查 table_locks_waited和table_locks_i ...

  10. insert ... on duplicate key update产生death lock死锁原理

    转载自  insert ... on duplicate key update产生death lock死锁原理 前言 编辑 我们在实际业务场景中,经常会有一个这样的需求,插入某条记录,如果已经存在了则 ...

最新文章

  1. torch量化的流程
  2. python判断质数的函数并输出_【python基础】|| 用python判断输入的数是否为素数
  3. oracle 日期改字符格式_oracle怎么把数值型日期转换成日期字符型
  4. python中turtle画圆填充颜色_用Python中的画图工具turtle绘制八卦图
  5. 简单的Client / Server 使用 linux 伯克利 socket实现
  6. DFS实现floodfill算法
  7. 新网 云服务器,云服务器的使用教程
  8. python timer 死掉_Python定时事件 Timer sched
  9. Linux开启文件共享服务
  10. Mac----已被macOS使用
  11. cmd怎么使用post请求’_flutter中dio的post请求方式使用总结
  12. fedora 安装google浏览器失败,报错
  13. Redis学习-1 NoSQL
  14. Android 开发之 ---- 底层驱动开发(一)
  15. 听我给你普及师父、师傅和讲师、教师的区别
  16. mysql 1032 1062_mysql slave频繁报1032_1062错误
  17. Spring Cloud深入浅出
  18. 两种web crawler方案
  19. 主流视频通话SDK比较【转】
  20. 排球比赛计分程序功能说明书

热门文章

  1. win32 c语言创建线程,【原创】win32线程及线程内核对象
  2. GOOGLE | COT(chain of thought)开山之作,利用思维链提升复杂问题推理能力
  3. 【COT】Chain-of-Thought Prompting Elicits Reasoning in Large Language Models
  4. Halo 博客系统部署日记--Docker
  5. 基于APM32F407的计算模块
  6. No.026<软考>《(高项)备考大全》【第10章】项目沟通和干系人管理(第2部分-干系人管理)
  7. led大屏按实际尺寸设计画面_实用!LED显示屏尺寸规格及计算方法
  8. Urho2D和 Physics2D
  9. vuex之webApp购物流程实现
  10. Spark GraphX 快速入门