@Transactional的commit提交失败问题

来源:8-1 事务型消息(上)

yst997

2020-06-29

关于您在视频8分钟的时候讲,Spring的@Transactional标签只有在执行成功的时候才会提交commit,那在整个下单流程中,第一步扣减redis缓存中的库存执行成功即使commit不成功也不会影响被回滚,第二步通过异步的消息来扣减mysql中的库存即使commit不成功也已经被扣减了不被@Transactional注解控制,这样的话即使commit不成功,那哪里会出现问题呢?

也就是说即使加了@Transactional注解。redis中扣减的,和mq中异步扣减的mysql中库存,都不会回滚再加上。
那加上@Transactional的意义是什么呢?

还是说整个下单流程的@Transaction标签下,如果整体下单流程没有成功commit,异步消息扣减mysql数据库库存会被回滚呢?

求教老师

写回答

1回答

龙虾三少

2020-06-29

transaction 只管数据库 不管redis和消息队列

1
2
weixin_慕雪8443089
回复
qq_慕村7585811
transaction是sping自带的操作数据库的注释,原理是数据库的事务操作,redis属于中间件
2022-04-07
共2条回复

聚焦Java性能优化 打造亿级流量秒杀系统(赠秒杀项目)

理解高流量电商网站性能构建思路 用高逼格技术解决性能提升问题

2174 学习 · 1009 问题

查看课程