tcc柔性事务细节

作者: dujh302 | 来源:发表于2016-11-12 10:52 被阅读835次

本文面对对tcc有一定了解的朋友。

tcc,是分布式系统场景下的一种事务解决方案。他和传统的分布式事务的最大区别是,分布式事务会锁资源,而tcc属于柔性事务,不会锁资源。

也就是说,根据cap理论,选择一致性还是可用性。

一般锁资源会导致体统性能低下而不可用,所以还是要用柔性事务,实现最终一致性

实现柔性事务三种方式,tcc,消息机制,补偿型。

tcc为try confirm cancle。大家应该都听过不少次。但是,try做的什么,confirm做什么,cancle做什么?

举一个转账的例子,a给b转账100。那么try做什么?

回过头来,我们看看,tcc和补偿型事务的一个最大的区别是,补偿型的事务不隔离,也就是说补偿型事务每执行一步,对其他事务都是可见的。

而tcc是事务隔离的,因此,tcc的try所造成的修改,其他事务应该看不到修改。因为,try不对数据库做修改,至少不commit。

回到例子,a给b转账,a的try就是检查a的余额是否有100,b的try就是b是否能收款。

如果两边的try都通过,那么就执行confirm,a,b在数据库执行变更。

至于cancle?我认为不用做什么,或者做rollback。

这里还有问题,confirm和cancle的多个动作,不能保证都可以成功完成,因此,需要有重做机制,而重做,意味着需要把confirm做成幂等操作。

既然要保证confirm的完成,也就等于需要一套消息机制做保障。因此,3个柔性事务实现对比,tcc不如消息通知机制。

另外,幂等操作需要保证顺序,需要有额外的时间戳保证顺利。

对账是最后的手段。

相关文章

  • tcc柔性事务细节

    本文面对对tcc有一定了解的朋友。 tcc,是分布式系统场景下的一种事务解决方案。他和传统的分布式事务的最大区别是...

  • 6.0 柔性事务 :TCC两阶段补偿型

    TCC方案是可能是目前最火的一种柔性事务方案了。关于TCC(Try-Confirm-Cancel)的概念,最早是由...

  • CAP&BASE

    如何正确理解CAP理论?CAP原理和BASE思想6.0 柔性事务 :TCC两阶段补偿型聊聊分布式事务,再说说解决方...

  • 如何实现一个TCC分布式事务框架的一点思考

    一个TCC事务框架需要解决的当然是分布式事务的管理。关于TCC事务机制的介绍,可以参考TCC事务机制简介。 TCC...

  • 高手通用分布式事务框架!

    一个TCC事务框架需要解决的当然是分布式事务的管理。关于TCC事务机制的介绍,可以参考TCC事务机制简介。 TCC...

  • TCC柔性分布式事务介绍

    转自【https://mp.weixin.qq.com/s/mIW1_K5fAoa2OlSLdXSHpQ】 本篇转...

  • 63.分布式事务解决方案-TCC

    TCC事务 TCC即Try Confirm Cancel,它属于补偿型分布式事务。TCC实现分布式事务一共有三个步...

  • 分布式事务

    1. 常见实现方式 2 PC 、3PC提交 柔性事务-TCC两阶段补偿-最大努力通知型 2. 包含至少3个角色 A...

  • TCC分布式事务管理器

    一,TCC分布式事务管理器 ByteTCC Himly TCC-transaction 二,TCC事务管理器的实现...

  • 分布式系统数据一致性问题

    协议:两阶段,三阶段,柔性事物TCC 实现方式:只讨论柔性事物,因npc并无法达到强一致性并且性能低。 TCC关键...

网友评论

    本文标题:tcc柔性事务细节

    本文链接:https://www.haomeiwen.com/subject/qvhqpttx.html