在上一篇文章中,我们详细介绍了分布式事务中的两阶段提交,以及知道了两阶段提交存在一定的问题
深入理解分布式事务中的两阶段提交(2PC),什么是2PC,2PC原理是怎样?2PC有没有什么问题?解决方案?无法解决的情况?
-
同步阻塞问题:执行过程中,所有节点都是事务阻塞型的,当参与者占有公共资源时,其他第三方节点访问公共资源不得不处于阻塞状态,也就是说,从投票阶段到提交阶段完成这段时间,资源是被锁住的
-
单点故障:协调者的故障会导致整个事务无法继续,参与者会一直阻塞,等待协调者回应,否则无法完成这次协议,整个系统就会进入阻塞态
三阶段提交协议是二阶段提交协议的改进版本,把两阶段提交协议的准备阶段一分为二,这样就有了
CanCommit、PreCommit、DoCommit 三个阶段
三阶段提交(3PC)
三阶段提交在两阶段提交的基础上增加了一个准备阶段,分为三个阶段:
- CanCommit阶段:协调者询问参与者是否可以提交事务,参与者返回