tcc事务对比saga
程序员文章站
2024-02-24 20:03:22
...
tcc的预锁资源可以作为saga中的一个事务,这样的话,tcc就变成了saga,也就是说,tcc是saga的一个特例。
tcc要求每一个事务都有预锁资源的操作,saga则可以灵活的决定某一个事务是否需要拆解成2个事务(预锁资源,执行事务)
tcc中,预锁资源对事务发起方透明,然而预锁资源的结果却对发起方可见(如转账的锁定金额),因此tcc模型中的事务是有副作用的。
saga中可以灵活的定义故障处理是向前成功或是向后还原,tcc在try阶段只能向后复原,confirm阶段只能向前成功
tcc牺牲了性能、灵活性,引入副作用,最终目的是希望构建起一套规整的模型,从而可以通过开发框架,隐藏分布式事务的细节及复杂度,简化开发
tcc要求每一个事务都有预锁资源的操作,saga则可以灵活的决定某一个事务是否需要拆解成2个事务(预锁资源,执行事务)
tcc中,预锁资源对事务发起方透明,然而预锁资源的结果却对发起方可见(如转账的锁定金额),因此tcc模型中的事务是有副作用的。
saga中可以灵活的定义故障处理是向前成功或是向后还原,tcc在try阶段只能向后复原,confirm阶段只能向前成功
tcc牺牲了性能、灵活性,引入副作用,最终目的是希望构建起一套规整的模型,从而可以通过开发框架,隐藏分布式事务的细节及复杂度,简化开发