码迷,mamicode.com
首页 > 编程语言 > 详细

Java分布式:分布式事务

时间:2019-08-20 10:57:57      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:mic   strong   调用   准备   span   组成   服务层   cancel   img   

Java分布式:分布式事务

 二阶段提交协议

  两阶段提交其实比较简单,这边有两个资源提供准备和提交两个接口。

技术图片

  由于隔离性互斥的要求,在事务执行过程中,所有的资源都是被锁定的,这种情况只适合执行时间确定的短事务。 但是为了保证分布式事务的一致性,大都是采用串行化的隔离级别来保证事务一致性,这样会降低系统的吞吐

  但因为2PC的协议成本比较高,又有全局锁的问题,性能会比较差。 现在大家基本上不会采用这种强一致解决方案。

TCC协议

  TCC名字的由来是其中包含了 try, confirm, cancel三个操作。

 

  与两阶段提交相比,TCC位于业务服务层, 没有单独的准备阶段,Try操作可以灵活选择业务资源锁的粒度。TCC是通过最终一致性来解决系统性能问题的这个设计,对我们设计抉择有很大的启发。 有些时候系统的技术问题是可以通过业务建模的方式来解决的。

 

 技术图片

Saga

  Saga是30年前的一篇数据库论文里提到的一个概念。在论文中一个Saga事务就是一个长期运行的事务,这个事务是由多个本地事务所组成, 每个本地事务有相应的执行模块和补偿模块,当saga事务中的任意一个本地事务出错了, 可以通过调用相关事务对应的补偿方法恢复,达到事务的最终一致性

 

Java分布式:分布式事务

标签:mic   strong   调用   准备   span   组成   服务层   cancel   img   

原文地址:https://www.cnblogs.com/MrSaver/p/11381205.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!