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 个分支事务构成,,那么该分布式事务的执行情况有三种:
页: 175 176 177 178 179 180 181 182 183 184 [185] 186 187 188 189 190 191 192 193 194
查看完整版本: 免费领取阿里云服务器2000元代金券!