- 博客(5)
- 收藏
- 关注
原创 spring事务和切面的双重aop导致的数据入库问题
1、修改顺序,设置spring的order控制顺序或者加载不同的方法上,保证aop时事务在前,分布式锁在后, 此时执行顺序为先加锁,再开启事务---提交事务,解锁(此时也可以设置读已提交)可以一定程度上减少重复数据的入库(在线程2执行第3步查询之前,线程1已经结束事务,那么线程2也可以立刻读取到有数据,从而修改,而不是重复新增),3、不使用分布式锁, 设置可重复读, 使用当前查询(即所查询数据被加行锁,其他线程新增阻塞或失败,业务再重试)(有疑问?2、线程2获取到锁,并且在之前就已经开启了事务。
2025-06-12 11:03:25
289
原创 spring的bean、aop的bean、循环依赖的bean、循环依赖的单aop的bean、循环依赖的双aop的bean
以A 、B俩个bean为例,且按照默认顺序spring优先加载A。
2025-06-11 20:06:14
657
原创 mysql
为了解决不可重复读问题 : mysql引入了mvcc版本控制, 当我们开启事物第一次读取数据时,生成最新的数据快照(readview),当前事物的事物指针指向这个版本的数据快照,当另一个事物修改了这条数据,并提交事物后,我们查询,仍然数据没有变化,因为另一个事物修改这条数据后,最新版本已经变了,但是我们当前查询的事物仍然指向的是数据快照,这样就做到了可重复读效果。mysql默认的隔离级别,在此级别下解决了不可重复读,但是仍然会出现幻读的情况,我们需要通过加锁(间隙锁)来尽量防止幻读。中,InnoDB 在。
2025-03-01 22:03:10
496
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1