003 分布式事务实现 | TCC原理描述

2019-03-05  本文已影响0人  __destory__

考虑如下场景,用户新增订单,从账户减去相应的钱数,增加对应的用户积分,如此流程,订单,账户,积分,有三个不同的数据库构成,因此,如果实现分布式事务的效果,除了采用Atomikos之外,还可以采用TCC的方式,

TCC=Try Confirm Cancel

Try,尝试着去做,尝试生成一个订单,尝试从用户账号中减去钱数,尝试给用户增加一定的积分,
Confirm,确定,将尝试的结果,变成最终结果,
Cancel,删除尝试的内容,

订单系统的TCC

账号系统的TCC,假定以后账户数据,id=1,amount=100,订单费用10

积分系统的TCC,同账号系统TCC实现方式。

总结,TCC的方式,就是通过业务逻辑的方式,借助额外的状态,或者字段等等,完成操作的预先执行,等到没有问题后确认生效,如果出现问题,则将预先执行的数据删除掉。

国内很多开源的系统支持TCC分布式框架,比如ByteTCCtcc-transactionhimly,可以和spring cloud,dubbo等结合使用,实现TCC效果

阿里的Fescar也开源了,可以实现TCC

上一篇 下一篇

猜你喜欢

热点阅读