天天看点

两阶段提交与三阶段提交

两阶段提交与三阶段提交

两阶段提交

上篇文章中我们说到两阶段提交2pc,两阶段提交还是有很多缺点的,它可能因为网络问题导致数据不一致,比如协调者发送的提交事务的请求由于网络问题只有部分参与者能接收到,这样部分参与者提交了事务而另一部分参与者没有提交就造成了数据的不一致,第二个问题就是协调者如果挂掉,参与者既没有提交也没有回滚,第三个问题就是同时在执行的时候参与节点的服务都是阻塞的,不能对外提供服务

三阶段提交

那么什么是三阶段提交,三阶段提交能否能解决这些问题呢?

三阶段提交分为CanCommit阶段,PreCommit阶段和doCommit阶段。第一个阶段是检查自身状态是否满足了事务操作的条件,一般可能是首先获取到这个分布式事务的锁,第二个阶段就是开始事务,但是没有提交,并返回给协调者结果,第三个阶段就是对事务的提交或回滚。

总结

❤️ 感谢大家

  1. 欢迎关注我❤️,点赞??,评论?,转发?