分布式事务(1)

 

1、通用性TCC技术方案

角色:

(1)主业务服务:他就是TCC事务的主控服务,主要控制的服务,负责整个分布式事务的编排和管理,执行,回滚,都是他来控制

(2)从业务服务:相当于我们的资金服务、订单服务、积分服务、抽奖服务、流量券服务,主要就是提供了3个接口,try-confirm-cancel,try接口里是锁定资源,confirm是业务逻辑,cancel是回滚逻辑

(3)业务活动管理器:管理具体的分布式事务的状态,分布式事务中各个服务对应的子事务的状态,包括就是他会负责去触发各个从业务服务的confirm和cancel接口的执行和调用。

 

 

执行流程:

(1)主业务服务会先在本地开启一个本地事务(这个本地事务说白了,就是你的主业务服务是不是也可能会干点儿什么事儿)

(2)主业务服务向业务活动管理器申请启动一个分布式事务活动,主业务服务向业务活动管理器注册各个从业务活动

(3)接着主业务服务负责调用各个从业务服务的try接口

(4)如果所有从业务服务的try接口都调用成功的话,那么主业务服务就提交本地事务,然后通知业务活动管理器调用各个从业务服务的confirm接口

(5)如果有某个服务的try接口调用失败的话,那么主业务服务回滚本地事务,然后通知业务活动管理器调用各个从业务服务的cancel接口

(6)如果主业务服务触发了confirm操作,但是如果confirm过程中有失败,那么也会让业务活动管理器通知各个从业务服务cancel

(7)最后分布式事务结束

 

2、异步确保型TCC技术方案

 主业务服务和从业务服务之间加了一个可靠消息服务,但是这个可靠消息服务可不是在请求什么MQ之类的东西,而是将消息放在数据库里的

3、补偿性TCC解决方案

通用型的TCC方案类似的,只不过从业务服务就提供俩接口就ok了,Do和Compensate,就是执行接口和补偿接口,这种方案的好处就是折中一下

 

posted @ 2020-06-12 11:02  superGG  阅读(129)  评论(0编辑  收藏  举报