08、分布式事务 实战 - 分布式事务解决方法-如何选择各种解决方案

一 各种方案对比

2PC TCC 可靠消息最终一致性 最大努力交付
一致性 强一致性 最终一致(偏强) 最终一致 最终一致
吞吐量
实现复杂的

二 如何选各种方案

1、 需要与其它系统对接的:最大努力交付;
2、 必须强一致的:2PC、TCC(其实一致性也挺强的);
3、 必须强一致但吞吐量要求较高的:TCC;
4、 必须强一致但要求实现简便又不追求吞吐量的:2PC;
5、 一致性要求可以是最终一致的:可靠消息最终一致性;
6、 一致性要求可以是最终一致的但是业务不核心的:最大努力交付;

TIPS:
Seata虽然是基于2PC,但又与传统2PC有所不同,特别是分支事务的提交timing。详见:分布式事务解决方法-2PC(两阶段提交)