Spring Cloud Alibaba

分布式事务:2PC、3PC协议

2019-03-27  本文已影响22人  晓阳emmm

两阶段提交协议-2PC

两阶段提交协议(2PC):是一种原子承诺协议,一种分布式算法,它协调参与分布式事务的所有应用(进程)是否提交或终止(回滚)事务,

2PC基本算法
2PC的缺点
  1. 同步堵塞:两阶段提交协议最大的缺点就是它是一种堵塞协议,在事务询问阶段AP向TM发送协议消息后,AP将堵塞,直到AP收到TM提交或回滚事务

  2. 数据一致性:如果在执行阶段二时TM或者部分AP不可用,部分AP执行事务不成功,导致数据不一致

三阶段提交协议-3PC

3PC是2PC的升级版,与2PC最大的不同就是3PC它是非堵塞的,具体就是在事务提交或者中止之前增加了一种超时机制,当超过这个时间上限还未提交事务,就会把该事务绑定的资源释放掉

3PC算法

 ![3pc](https://img.haomeiwen.com/i2627661/86d3ffa1c0481976.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
3PC的缺点

在阶段三如果协调者在超时范围内未提交doCommit消息或者中止消息,参与者在超时后会继续进行事务的提交,如果doCommit没问题但是如果是中止服务的话参与者还会自动提交事务这样可能导致本来的事务回滚变成了事务提交。

参阅:
https://en.wikipedia.org/wiki/Two-phase_commit_protocol
https://en.wikipedia.org/wiki/Three-phase_commit_protocol

个人博客

上一篇 下一篇

猜你喜欢

热点阅读