
分布式事务
概念
- 分布式环境下,一个事务的多个操作位于不同的物理机/虚拟机上
- 分布式环境下如何保证事务的ACID特性
锁 VS 事务
分布式锁关心进程间的互斥关系(隔离性)
分布式事务关心ACID四个特性
实现方法
2PC
2 phase commit
组成
- 协调者(coordinator)
- 参与者 × N
过程
coordinator询问所有参与者,事务执行(是否成功
一票否决
- 所有参与者提交
- 所有参与者回滚
缺点
同步
- 等待coordinator消息过程中阻塞
单点故障
数据不一致
- 网络问题导致只有部分参与者收到commit消息
一票否决,不“乐观”
本地消息表
组成
本地
- 业务数据表
- 消息表
消息队列
过程
一个本地事务
- 写业务数据表
- 写本地消息表
一方将本地消息表中的消息移到消息队列
一方从消息队列中读取消息进行下一步操作