注意:这些总结统一来源——蚂蚁课堂架构培训视频、咕泡学院VIP架构培训视频gitHub高分star笔记。准确可靠,简洁易懂

1.传统模式使用Jta+Atomikos

底层用的就是2PC(两阶段提交协议),略

2.2PC与3PC实现的区别

(1)2PC(两阶段提交协议):

准备阶段:协调者向参与者发起指令,参与者评估自己的状态,如果参与者评估该指令可完成,则会写redo(提交)或者undo(回滚)日志,然后锁定资源执行操作,但并不提交

提交阶段:如果每个参与者明确返回准备成功,则协调者向参与者发送提交指令,参与者释放锁定的资源。如果任何一个参与者明确返回准备失败,则协调者会发送终止指令,参与者取消已经变更的事务,释放锁定的资源

缺点:如果协调者宕机,参与者没有协调者指挥会一致阻塞;锁定资源时间长影响性能,不适合解决微服务事务

分布式-事务学习(二)——分布式事务常见解决方案

分布式-事务学习(二)——分布式事务常见解决方案

(2)3PC(三阶段提交协议):

是两阶段提交协议的改进版,多了询问阶段。它通过超时机制解决了阻塞的问题

询问阶段(新增的):协调者询问参与者是否可以完成指令,协调者只需要回答是还是不是而不需要做真正操作,这个阶段超时导致终止

准备阶段:如果询问阶段所有参与者都返回可以执行操作,协调者向参与者发发送预知性请求,然后参与者都写redo和undo日志,执行操作但是不提交操作;如果都返回不能执行操作则协调者发送终止请求,这个阶段超时导致成功

提交阶段:如果每个参与者在准备阶段返回准备成功,协调者向参与者发送提交指令,参与者提交资源变更的事务,释放锁定的资源;如果任一参与者返回失败协,协调者向参与者发起终止指令,参与者取消变更的事务执行undo日志,释放锁定的资源

(3)2PC与3PC的区别

3PC增加了一个询问阶段,询问阶段可以确保尽可能早的发现无法执行操作而需要中止事务行为,协调者和参与者执行的任务都加了 超时,一旦超时,协调者和参与者都依然提交事务,默认为成功。以上是3PC的优点,但是如果一旦发生超时系统仍然会发生不一致,只不过比较少,好处就是不会出现阻塞和永久锁定资源

3.使用阿里巴巴TCC补偿框架(TCC 方案)

4.使用可靠消息模式

5.使用LCN框架解决分布式事务(重点)

6.阿里GTS框架解决分布式事务

相关文章:

  • 2021-10-22
  • 2022-12-23
  • 2021-04-20
  • 2022-12-23
  • 2021-09-02
  • 2021-08-22
  • 2021-08-10
猜你喜欢
  • 2021-10-08
  • 2021-11-03
  • 2021-12-27
相关资源
相似解决方案