优缺点
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:
空处理即可
复制代码
方案二:增加一个通知服务区进行通知,提供外部第三方时适用