2PC协议是什么原理?
收起
1
条回答
写回答
取消
提交回答
-
- Two Phase Commit
- 目的:保证属于多个数据分片上操作的原子性
- 角色:协调者,参与者
- 两阶段
- 阶段一:Prepare阶段 1) 协调者向所有参与者发送prepare消息 2) 参与者收到prepare消息,事务执行失败或不能执行,返回No消息,事务执行成功,记录redo和undo事务日志,返回Yes消息 3) 参与者向协调者反馈事务询问的响应
- 阶段二:Commit阶段 1) 协调者收到参与者的响应,如果有参与者响应No或超时,给所有参与者发送rollback消息,否则给所有参与者发送commit消息 2) 参与者向协调者发送ACK响应 3) 协调者结束事务
- 优点:原理简单,实现方便
- 缺点
- 所有节点事务同步阻塞,资源被阻塞的时间较长,吞吐量是瓶颈
- 协调者单点故障
- 易因为网络故障导致数据不一致
- XA协议是2PC的一个广泛工业应用,几乎所有收费的商业数据库都支持XA协议
2020-03-31 16:57:16