刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!
XA是X/Open DTP组织定义的两阶段提交协议,XA模型包括应用程序(AP)、事务管理器(TM)、资源管理器(RM)、通信资源管理器(CRM)四部分。事务管理器作为全局的调度者,负责各个本地资源的提交和回滚。XA实现分布式事务的原理如下:
XA优劣
所谓的消息事务就是基于消息中间件的两阶段提交,将一个分布式事务拆成一个消息事务(A系统的本地操作+发消息)+B系统的本地操作。A系统中消息事务保证要么本地操作和对外发消息同时成功,要么两者都失败。B系统的操作由消息驱动,如果 B本地操作失败,消息会重投,直到B操作成功,这样就变相地实现了A与B的分布式事务。原理如下:
消息事务优劣
所谓的TCC编程模式,也是两阶段提交的一个变种。TCC提供了一个编程框架,将整个业务逻辑分为三块:Try、Confirm和Cancel三个操作。
以在线下单为例,Try阶段会去扣库存,Confirm阶段则是去更新订单状态,如果更新订单失败,则进入Cancel阶段,会去恢复库存。
TCC优劣
TCC 分布式事务解决方案适用于执行时间确定且较短的业务,比如互联网金融企业最核心的三个服务:交易、支付、账务。
具体用哪种方式,最终还是取决于业务场景。针对不同业务进行技术选型也是一种很重要的能力!
扩展思考
本文链接:分布式事务有哪些解决方案 ?
版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!