32. 什么是三阶段协议?

这个问题,严格来说不属于【分布式事务】相关,考虑到本文已经出现了一阶段提交、二阶段提交,所以这里就瞬时“硬塞”一个三阶段提交。

感兴趣的胖友,可以看看 《数据库 分布式事务 2阶提交 3阶提交》 文章。

事务解决方案的对比总结

总的来说,TCC 和 MQ 都是以服务为范围进行分布式事务的处理,而 XA、BED、SAGA 则是以数据库为范围进行分布式处理。

对于数据库中间来来说,更趋向于选择后者,对于业务而言侵入小,改造的成本低。

对比图

对比图

  • 图中暂时未包括:1)本地消息表;2)可靠消息最终一致性方案 。因为,这个是 Sharding Sphere 官方提供的图。