是否有必要使用aftercommit和事务性消息

来源:8-2 事务型消息应用(下)

慕数据5069965

2022-10-27

老师好,

这一节我们为了防止redis扣减和mq发送完消息之后,订单入库出现异常导致不一致,选择将mq发送放到aftercommit方法里,我觉得这里如果直接放到createOrder最后,然后将redistemplate配置成支持事务是不是就能解决所有问题呢?
也就是说逻辑上,redis扣减,订单入库mysql,mq发送异步消息依次执行,这样任何一个地方出现异常都能保证全局的最终一致性吧。

至于老师说的这个线程执行到哪里突然死掉了。。我觉得要是考虑这种情况,那任何只包含mysql的多个操作的事务(例如从A账户取100到B账户),如果在操作中间线程死掉了,也是会导致不一致的吧。。

写回答

2回答

龙虾三少

2022-10-27

redis无法支持事务 只能做最终一致方案

0
1
慕数据5069965
查了一下是这样的,谢谢老师~
2022-10-28
共1条回复

龙虾三少

2022-10-27

redis无法支持事务 只能做最终一致方案

0
0

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

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

2174 学习 · 1009 问题

查看课程