优缺点
RM
使用 DataSourceProxy
链接数据路,目的是使用 ConnectionProxy
,使用数据源和数据代理的目的是在第一阶段将 undo_log
和业务数据放在一个本地事务提交,这样就保存了只要有业务操作就一定有undo_log XID
和 Branch-ID
找到对应的回滚日志,通过回滚日志生成的反向 SQL
并执行,以完成分支事务回滚到之前 全局事务发起方
# 账户A try: try的幂等效验 try的悬挂处理 检查余额是否够30元 扣减30元 confirm: 空处理即可,通常TCC阶段是认为confirm是不会出错的 cancel: cancel幂等效验 cacel空回滚处理 增加可用余额30元,回滚操作 # 账户B try: 空处理即可 confirm: confirm的幂等效验 正式增加30元 cancel: 空处理即可 复制代码
方案二:增加一个通知服务区进行通知,提供外部第三方时适用