分布式事务实现方案
一、概述
参考我之前写的分布式事务:
分布式事务
Seata分布式事务解决方案
通知型事务解决方案
二、分布式事务总结
CAP理论告诉我们一个悲惨但不得不接受的事实——我们只能在C、A、P中选择两个条件。而对于业务系统而言,我们往往选择牺牲一致性来换取系统的可用性和分区容错性。不过这里要指出的是,所谓的“牺牲一致性”并不是完全放弃数据一致性,而是牺牲强一致性换取弱一致性的。
而目前主流的分布式解决方案是遵循BASE理论,满足最终一致性的柔性事务,主要分为补偿型事务和通知型事务:
- 补偿型事务又分AT、TCC、Saga;补偿型事务都是同步(seata)。
- 通知型事务分本地消息表(可靠性消息)、事务消息(基于RocketMQ的事务消息方案)、最大努力通知型;通知型事务都是异步的。
而如果业务需要从任意视角对数据的访问有效隔离并满足全局数据一致性。这样的话就需要XA协议,常见的2PC提交,可以使用Seata XA模式(XA协议要求事务资源本身提供对XA协议规范和协议的支持)。大家可根据工作中的具体业务具体分析选择对应的实现方案。