基于SOA的盛行, ACID特性要在服务器之间实现. 而不仅仅是单一的数据库.
分布式事务方案:
强一致性
2PC两阶段提交(XA事务, 阻塞)Two-Phase Commit
3PC三阶段提交(非阻塞,引入超时和准备阶段)Three-Phase Commit
TCC模式 ,本质也是2PC
Sage模式
最终一致性(BASE理论)
本地消息表
Mq消息队列.
Paxos
Raft
ZAB 协议 ( Zookeeper Atomic Broadcast) 原子广播协议
2PC,二阶段提交协议.将事务提交的过程分成两部分进行处理: 准备阶段和提交阶段.
事务的发起者称之为是协调者. 事务的执行者称之为参与者.
阶段一:准备阶段
1.协调者想所有参与者发送事务内容,询问是否可以提交事务.并等待所有的参与者答复.
2.各个参与者执行事务操作., 将undo和redo信息写入到事务日志中.(但是此时事务没有提交)
3.参与者返回yes表示可以进行提交, 参与者返回no表示不能进行提交.
阶段二:提交阶段
1.所有的参与者都返回yes 能够提交事务
2.一个参与者返回no,就要中断事务.