美文网首页
分布式-2PC

分布式-2PC

作者: shoukai | 来源:发表于2017-07-11 18:13 被阅读59次

协议定义

二阶段提交(Two-phaseCommit)是指,为了使基于分布式系统架构下的所有节点在进行事务提交时保持一致性而设计的一种算法(Algorithm)。

通常,二阶段提交也被称为是一种协议(Protocol)。

在分布式系统中,每个节点虽然可以知晓自己的操作时成功或者失败,却无法知道其他节点的操作的成功或失败。当一个事务跨越多个节点时,为了保持事务的ACID特性,需要引入一个作为协调者的组件来统一掌控所有节点(称作参与者)的操作结果并最终指示这些节点是否要把操作结果进行真正的提交(比如将更新后的数据写入磁盘等等)。因此,二阶段提交的算法思路可以概括为:参与者将操作成败通知协调者,再由协调者根据所有参与者的反馈情报决定各参与者是否要提交操作还是中止操作。

协议前提

  • 该分布式系统中,存在一个节点作为协调者(Coordinator),其他节点作为参与者(Cohorts)。且节点之间可以进行网络通信。
  • 所有节点都采用预写式日志,且日志被写入后即被保持在可靠的存储设备上,即使节点损坏不会导致日志数据的消失。
  • 所有节点不会永久性损坏,即使损坏后仍然可以恢复。

协议说明

2PC

第一阶段(提交请求阶段)

  1. 协调者节点向所有参与者节点询问是否可以执行提交操作,并开始等待各参与者节点的响应。
  2. 参与者节点执行询问发起为止的所有事务操作,并将Undo信息和Redo信息写入日志。
  3. 各参与者节点响应协调者节点发起的询问。如果参与者节点的事务操作实际执行成功,则它返回一个"同意"消息;如果参与者节点的事务操作实际执行失败,则它返回一个"中止"消息。

第二阶段(提交执行阶段)

成功:当协调者节点从所有参与者节点获得的相应消息都为"同意"时:

  1. 协调者节点向所有参与者节点发出"正式提交"的请求。
  2. 参与者节点正式完成操作,并释放在整个事务期间内占用的资源。
  3. 参与者节点向协调者节点发送"完成"消息。
  4. 协调者节点收到所有参与者节点反馈的"完成"消息后,完成事务。

失败:如果任一参与者节点在第一阶段返回的响应消息为"终止",或者协调者节点在第一阶段的询问超时之前无法获取所有参与者节点的响应消息时:

  1. 协调者节点向所有参与者节点发出"回滚操作"的请求。
  2. 参与者节点利用之前写入的Undo信息执行回滚,并释放在整个事务期间内占用的资源。
  3. 参与者节点向协调者节点发送"回滚完成"消息。
    协调者节点收到所有参与者节点反馈的"回滚完成"消息后,取消事务。
  4. 有时候,第二阶段也被称作完成阶段,因为无论结果怎样,协调者都必须在此阶段结束当前事务。

协议优点

简单、方便

协议缺点

  1. 同步阻塞:在二阶段提交过程中,所有参与该事务操作的逻辑都处于阻塞状态。
  2. 单点问题:协调者在协议中扮演重要角色,但是没有解决协调者的单点问题。
  3. 数据不一致:第二阶段中成功情况步骤4”协调者节点收到所有参与者节点反馈的"完成"消息”,此阶段如果出现协调者中断操作,会导致数据不一致。

参考文献

维基百科-二阶段提交
从Paxos到Zookeeper (豆瓣)
对分布式事务及两阶段提交、三阶段提交的理解 - 邴越 - 博客园

相关文章

  • 分布式事务的典型处理方式

    参考来源 分布式事务的典型处理方式:2PC、TCC、异步确保和最大努力型 分布式事务的典型处理方式:2PC、TCC...

  • RocketMQ实现分布式事务

    一. 概述 常见分布式事务的解决方案有:2PC/3PC, 参考文章: 分布式事务(1)---2PC和3PC原理T...

  • 分布式事务之解决方案(XA和2PC)

    3. 分布式事务解决方案之2PC(两阶段提交) 针对不同的分布式场景业界常见的解决方案有2PC、TCC、可靠消息最...

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

    两阶段提交协议-2PC 两阶段提交协议(2PC):是一种原子承诺协议,一种分布式算法,它协调参与分布式事务的所有应...

  • Kafka&zookeeper

    SDN分布式集群修改后记得 maven clean install 分布式事务之2PC和3PCstorm - 可靠...

  • zookeeper 入门(二)

    本文主要内容: 2pc 3pczookeeper 能做什么? 2PC 和 3PC 在分布式系统中,每一个机器节点虽...

  • 浅谈大规模分布式系统中那些技术点

    分布式事务 分布式系统的特性 分布式事务的基本介绍 常用的分布式技术说明 理解2PC和3PC协议 「点击阅读」 分...

  • 分布式事务

    主要包括: 分布式基础 分布式事务概念介绍 2PC 和 3PC 分布式事务的具体实现方案 分布式一致性基础 数据库...

  • 分布式管理系统及大型网络架构

    分布式管理系统 1 对应用本身做拆分 2PC 协议 两段式提交

  • 分布式事务总结

    事务、分布式事务、Base、CAP不赘述。 业内场景的分布式事务解决方案有,2PC、3PCTCC(alipay)增...

网友评论

      本文标题:分布式-2PC

      本文链接:https://www.haomeiwen.com/subject/idbmhxtx.html