• 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html
  • 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html

一致性协议(一)两阶段提交协议

极客笔记 Geekerstar 1年前 (2018-04-09) 258次浏览 已收录 0个评论 扫描二维码
文章目录[隐藏]

 

Two-phase Commit(2PC)。

可以保证一个事务跨越多个节点时保持 ACID 特性。

两类节点:协调者(Coordinator)和参与者(Participants),协调者只有一个,参与者可以有多个。

运行过程

1. 准备阶段:协调者询问参与者事务是否执行成功;

2. 提交阶段:如果事务在每个参与者上都执行成功,协调者发送通知让参与者提交事务;否则,协调者发送通知让参与者回滚事务。


需要注意的是,在准备阶段,参与者执行了事务,但是还未提交。只有在提交阶段接收到协调者发来的通知后,才进行提交或者回滚。

存在的问题

– 参与者发生故障。解决方案:可以给事务设置一个超时时间,如果某个参与者一直不响应,那么认为事务执行失败。

– 协调者发生故障。解决方案:将操作日志同步到备用协调者,让备用协调者接替后续工作。


丨极客文库, 版权所有丨如未注明 , 均为原创丨
本网站采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行授权
转载请注明原文链接:一致性协议(一)两阶段提交协议
喜欢 (0)
[247507792@qq.com]
分享 (0)
Geekerstar
关于作者:
本站技术支持

您必须 登录 才能发表评论!

  • 精品技术教程
  • 编程资源分享
  • 问答交流社区
  • 极客文库知识库

客服QQ


QQ:2248886839


工作时间:09:00-23:00