全部产品
云市场

分布式事务中的二阶段提交是什么?

更新时间:2020-03-16 12:53:45

关键字:2PC、两阶段、分布式。

二阶段提交协议(Two-phase Commit Protocol,简称 2PC)是分布式事务的核心协议。在此协议中,一个事务管理器(Transaction Manager,简称 TM)协调 1 个或多个资源管理器(Resource Manager,简称 RM)的活动,所有资源管理器向事务管理器汇报自身活动状态,由事务管理器根据各资源管理器汇报的状态(完成准备或准备失败)来决定各资源管理器是“提交”事务还是进行“回滚”操作。

二阶段提交的具体流程如下:

  1. 应用程序向事务管理器提交请求,发起分布式事务;
  2. 在第一阶段,事务管理器联络所有资源管理器,通知它们准备提交事务;
  3. 各资源管理器返回完成准备(或准备失败)的消息给事务管理器(响应超时算作失败);
  4. 在第二阶段:
    • 如果所有资源管理器均完成准备(如图 1),则事务管理器会通知所有资源管理器执行事务提交;
    • 如果任一资源管理器准备失败(如图 2 中的资源管理器 B),则事务管理器会通知所有资源管理器进行事务回滚。
所有资源管理器完成准备,事务管理器协调各资源管理器提交事务
commit
图 1
任一资源管理器准备失败,事务管理器协调各资源管理器回滚事务
rollback
图 2