事务一致性
- 强一致方案:两阶段提交、三阶段提交、TCC
- 两阶段提交
- 解决方案: XA(AP、TM、RM)。
- 缺点:参与者同步阻塞;数据不一致(提交阶段,只有部分参与者执行事务);无法保证事务执行的完整性(提交阶段协调者和执行成功的参与者均故障)。
- 执行方案:数据库中间件提供组件,对业务层透明。
- 解决方案: XA(AP、TM、RM)。
- 三阶段提交
- 解决方案:
- 优势:1.引入参与者超时机制,解决参与者同步阻塞时间过长,占用资源导致死锁的问题。 2.保证事务执行的完整性。
- 缺点:
- 执行方案:数据库中间件提供组件,对业务层透明。
- 解决方案:
- TCC补偿型
- 解决方案:try、confirm、cancel
- 缺点:
- 执行方案:业务代码写try、confirm、cancel的逻辑。
- 解决方案:try、confirm、cancel
- 两阶段提交
- 最终一致性方案:可靠消息确保型、最大努力通知型