柔性事务解决方案:TCC(两阶段型、补偿型)
2018-03-16 19:09:56 49 举报
柔性事务解决方案:TCC(两阶段型、补偿型)
作者其他创作
大纲/内容
TCC(两阶段型、补偿型)
Cancle
数据库
confirmC
Confirm
TCC里对每个服务的资源操作是本地事务,数据被lock的时间短,可扩展性好(可以说是为独立部署的SOA服务而设计的)
Try
对应支付系统的订单账户操作:订单处理、资金账户处理、积分账户处理
一个完整的业务活动由一个主业务服务与若干从业务服务组成
从业务服务C
从业务服务B
业务活动管理器
主业务服务A
实现
成本
位于业务服务层,而非资源层
主业务服务负责发起并完成整个业务活动
业务活动日志成本
confirmB
业务活动管理器控制业务活动的一致性,它登记业务活动中的操作, 并在业务活动提交时确认所有的TCC型操作的confirm操作,在业务活动取消时调用所有TCC型操作的cancel操作
实现TCC操作的成本
应用场景
方案特点
不与具体的服务框架耦合(在RPC架构中通用)
启动业务活动登记业务操作提交/回滚业务活动
可以灵活选择业务资源的锁定粒度
cancelC
适应范围
从业务服务提供TCC型业务操作
tryB
TCC操作、幂等操作、可补偿操作、可查询操作
业务活动结束时confirm或cancel操作的执行成本
强隔离性、严格一致性要求的业务活动
用到的服务模式
tryC
cancelB
适用于执行时间较短的业务(比如处理账户、收费等业务)
活动日志
0 条评论
下一页