gydtep 发表于 2020-6-18 10:38:34

事务的执行过程中,宕机和网络超时都有可能发生,针对这些异常场景,不同 XA 规范的实现,对异常处理做法可能不同,

gydtep 发表于 2020-6-18 10:48:34

TM 在阶段 1 中询问 RM 前宕机,恢复后无需做任何操作。

gydtep 发表于 2020-6-18 12:16:44

原子性:在 prepare 和 commit 阶段保证事务是原子性的。

gydtep 发表于 2020-6-18 14:01:30

每一个 TM 域来说,由于 TM 是单点,存在单点故障风险,如果 TM 在阶段1之后挂掉,会导致参与的 RM 长时间收不到阶段 2 的请求而长期持有资源的锁,

gydtep 发表于 2020-6-18 14:05:58

影响业务的吞吐能力。同时一次完整的全局事务,TM 和 RM 之间的交互多达 8 次,太繁琐,非常影响系统的处理性能。

gydtep 发表于 2020-6-18 14:11:51

XA 两阶段协议可能会造成脑裂的异常,假如 TM 在阶段 2 通知 RM 提交事务时,如果指令发出后就宕机了,

gydtep 发表于 2020-6-18 15:25:35

支持 TCC 事务的开源框架有:ByteTCC、Himly、TCC-transaction。

gydtep 发表于 2020-6-18 16:04:15

一致性:Saga 事务可以实现最终一致性。
持久性:基于本地事务,所以这个特性可以很好实现。

gydtep 发表于 2020-6-18 17:00:20

TCC 是完美补偿,补偿操作会彻底清理之前的原始事务操作,用户是感知不到事务取消之前的状态信息的。

gydtep 发表于 2020-6-18 17:05:58

TCC 的事务可以更好的支持异步化,但是 Saga 模式一般在补偿阶段比较适合异步化。
页: 337 338 339 340 341 342 343 344 345 346 [347] 348 349 350 351 352 353 354 355 356
查看完整版本: 阿里云2000元专属红包领取及使用说明