Spring 分布式事务实现

消息放回至MQ队列,重试重新触发该方法

当这一步出现错误时,上面的因为已经commit,所以不会rollback

1 多数据源的事务同步解决方案

==============================================================================

1.1 XA与最后资源博弈


1.start MQ transaction

2.receive message

针对 DB 使用 JTA 事务

3.start JTA transaction on DB

4.update DB

DB 一阶段提交

5.phase-1 commit on DB transaction

当该步出错时,由于DB 还在XA的第一次提交预备状态,DB 还是可以回滚

6.commit MQ transaction

等到 MQ 事务提交完成,才做 DB 二阶段提交

该步出错时,因为MQ不是XA方式,提交后无法回滚,虽然 DB 都可以回滚

7.phase-2 commit on DB transaction

1.2 共享资源


适用场景

两个数据源可共享同一底层资源时。

比如ActiveMQ使用DB作为底层资源存储,使用DB的connection控制事务提交,需要数据源支持指定底层资源存储方式。

1.3 最大努力一次提交


依次提交事务,可能会出错,尽量通过AOP或Listener实现事务直接的同步。

1.4 JMS最大努力一次提交+重试


适用场景

其中一个数据源是MQ,并且事务由读MQ消息开始。

利用MQ消息的重试机制,重试的时候需要考虑重复消息。

1.start message transaction

2.receive message

3.start database transaction

数据库操作出错,消息会被放回MQ,重试重新触发该方法

4.update database

5.commit database transaction

6.commit message transaction

这种时候没有问题,都能成功回滚。

1.start message transaction

2.receive message

3.start database transaction

4.update database

5.commit database transaction

提交MQ事务出错,消息放回MQ,重试重新触发该方法

6.commit message transaction

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

2021年Java中高级面试必备知识点总结

在这个部分总结了2019年到目前为止Java常见面试问题,取其面试核心编写成这份文档笔记,从中分析面试官的心理,摸清面试官的“套路”,可以说搞定90%以上的Java中高级面试没一点难度。

本节总结的内容涵盖了:消息队列、Redis缓存、分库分表、读写分离、设计高并发系统、分布式系统、高可用系统、SpringCloud微服务架构等一系列互联网主流高级技术的知识点。

目录:

(上述只是一个整体目录大纲,每个点里面都有如下所示的详细内容,从面试问题——分析面试官心理——剖析面试题——完美解答的一个过程)

部分内容:

对于每一个做技术的来说,学习是不能停止的,小编把2019年到目前为止Java的核心知识提炼出来了,无论你现在是处于什么阶段,如你所见,这份文档的内容无论是对于你找面试工作还是提升技术广度深度都是完美的。

不想被后浪淘汰的话,赶紧搞起来吧,高清完整版一共是888页,需要的话可以点赞+关注
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!
如你所见,这份文档的内容无论是对于你找面试工作还是提升技术广度深度都是完美的。

不想被后浪淘汰的话,赶紧搞起来吧,高清完整版一共是888页,需要的话可以点赞+关注
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!

  • 10
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值