java树节点怎样进行事务处理_微服务架构分布式事务解决方案设计思路

第一节:了解常用的分布式解决方案

一、分布式事务方案:最终一致性、事务补偿、TCC、两阶段提交、最大能力通知等。具体结合业务场景。很多大型企业自主研发了自己的分布式事务解决方案,如:支付宝 XTS,去哪儿 QMQ。

1.基于可靠消息的最终一致性解决方案(异步确保型)(适用场景比较广)

2.TCC事务补偿性方案(try-confirm-cancel)(也属于两阶段型的,但区别于2PC协议的两阶段提交)

3.最大努力通知型方案(一般跨平台通知比较常用)

###第二节:解决方案效果展示(结合支付系统真实应用场景)

455afe39ec6f1bd1f8e9968c3058e50c.png

c19a0d8330a17cdd6cdcc027781fa5a5.png

一.场景(如上图)

1、基于可靠消息最终一致性方案

场景:对应支付系统会计异步记账业务;银行通知结果信息存储与驱动订单处理。

2、TCC方案

场景:对应支付系统的订单账户操作:订单处理、资金账户处理、积分账户处理。

3、最大努力通知型方案

场景:对应支付系统的商户通知业务场景

###二、用到的技术:

dubbo、spring、springMVC、mybatis、druid

jdk7(或jdk8)、mysql5.6、tomcat、兼容JMS标准的MQ(activeMQ)

第三节:常用分布式事务方案介绍

###一、事务介绍

1.由一组操作构成的可靠、独立的工作单元。

2.ACID: atomicity(原子性) 、consistency(一致性)、isolation(隔离性)、durability(持久性)

3.难点:高度并发、资源分布、大时间跨度

二、本地事务

1.事务由资源管理器本地管理(如:spring 注解)

2.优点:支持严格的ACID属性、可靠、高效、状态可以只在资源管理器中维护、应用编程模型简单(在框架或平台的支持)

3.局限:不支持分布式事务处理能力、隔离的最小单位由资源管理器决定(如:数据库中的一条记录)

三、全局事务(DTP模型)--标准分布式事务

76387e228f0c88dd0feff3d257154ba5.png

410bf3cbb4c3a8ba30f0b48d4131262a.png

四、javaEE平台中的分布式事务实现

cbba24e7955e7977c811e3eab8d58a15.png

五、柔性事务

d893eee7a3d14722a5784e144aae706a.png

1.柔性事务中的服务模式:可查询模式、幂等操作、TCC操作、可补偿操作。

65d4d0ed17356e89979ed052ea7cd616.png

2.柔性事务解决方案:可靠消息最终一致

f8f65499adbba65a0eb970cde562bcc4.png

a4a3607d668a2f0f855b092fcc87b6cc.png 在此我向大家推荐一个架构学习交流圈。交流学习企鹅群号:948368769(里面有大量的面试题及答案)里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多 3.TCC

eef602e6c07a471ea915afd472daa6af.png

3107b1a0a98cd7f7cfaa716e3be0db9d.png

4.最大努力通知型

9935d90f489ef7a4171b52845d6e4521.png

六、总结

常用的分布式事务解决方案:

*刚性事务:全局事务(标准的分布式事务)

*柔性事务:

可靠消息最终一致(异步确认型)

TCC(两阶段型、补偿型)

最大努力通知型(非可靠消息、定期校对)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值