1、首先事务 特性:ACID 原子、一致、隔离、持久
2、分布式事务:CAP 一致性、可用性、分区容错性 .
分布式系统理论上CA不能共存,目前只有CP 、AP架构
3、BASE理论:Basically Available 基本可用、Soft state软状态、Eventually consistent最终一致性
4、分布式事务方案:
XA---2PC : precommit ---> docommit
3PC: CanCommit--->precommit - --> docommit
TCC: try--->Confirm--->cancel
针对每个操作,都要注册一个与业务 逻辑相对应的确认和补偿操作
MQ:
LCN:
LCN模式是通过代理Connection的方式实现对本地事务的操作,然后在由TxManager统一协调控制事务。当本地事务提交回滚或者关闭连接时将会执行假操作,该代理的连接将由LCN连接池管理。
有中心控制台。
这里使用时候有个小注意点:
如果不是使用的dubbo方式而是用的restful方式的话,需要传递事务组信息
目前官网有点问题,而且因为阿里系的冲击,目前运营不稳定。
SEATA:
网上资料一大堆,采用表undo_log方式,使用zk协调。
简单点就是A库操作记录A库的undo_log表一条数据,B库操作记录B库的undo_log表一条数据。如果出现异常,根据undo_log 中的信息进行回滚。如果全部成功,删除记录的日志。
网友评论