gydtep 发表于 2020-6-17 21:28:06
AP 就会通过 TM 来定义事务的边界,TM 负责协调参与事务的各个 RM 一同完成一个全局事务。gydtep 发表于 2020-6-18 09:18:37
TM 记录事务 commit 日志,并向所有 RM 发起事务提交指令。gydtep 发表于 2020-6-18 09:32:26
RM 收到指令后,提交事务,释放资源,并向 TM 响应“提交完成”。gydtep 发表于 2020-6-18 10:19:14
这叫做 Heuristic Completion,注意这种场景有可能会破坏事务的一致性,产生异常。gydtep 发表于 2020-6-18 11:40:21
TM 在阶段 2 中记录事务结束日志后宕机,恢复后无需做任何操作。gydtep 发表于 2020-6-18 11:48:45
阶段 1 中,RM 有超时情况时,TM 按失败处理,给所有 RM 发送回滚指令。gydtep 发表于 2020-6-18 13:16:36
XA 两阶段提交协议可以覆盖分布式事务的三种场景,但是全局事务的执行过程中,RM 一直持有资源的锁,如果参与的 RM 过多,gydtep 发表于 2020-6-18 15:04:07
防止资源悬挂:原因网络异常导致两个阶段无法保证严格的顺序执行,出现参与方侧 try 请求比 cancel 请求更晚到达的情况,gydtep 发表于 2020-6-18 15:10:53
cancel 会执行空回滚而确保事务的正确性,但是此时 try 方法也不可以再被执行。gydtep 发表于 2020-6-18 15:44:31
假如一个 Saga 的分布式事务链有 n 个分支事务构成,,那么该分布式事务的执行情况有三种: