开发者社区> 问答> 正文

2PC协议是什么原理?

2PC协议是什么原理?

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

相关电子书

更多
从“连接”到“交互” 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载