java 事务 两阶段提交 实现_分布式事务之两阶段提交(2PC)

java 事务 两阶段提交 实现_分布式事务之两阶段提交(2PC)_第1张图片

两阶段提交(2PC) 是 Oracle Tuxedo 系统提出的 XA 分布式事务协议的其中一种实现方式。

一、关于 XA 分布式事务协议

XA 分布式协议主要有两个角色:

事务管理器(协调者) 事务管理器作为全局事务的协调管理者,与每个资源管理器通信,完成分布式事务的管理。

资源管理器 (参与者) 资源管理器管理每个参与者的事务资源,其应该具有提交和回滚的能力,如数据库。

XA 分布式协议制定的分段提交过程:

第一阶段( prepare ) 第一阶段每个参与者准备执行事务并对需要的资源加锁,进入 ready 状态,并通知协调者已经准备就绪。

第二阶段( commit ) 第二阶段当协调者确认每个参与者都 ready 后,通知参与者进行 commit 操作;如果有参与者 fail ,则发送 rollback 命令,各参与者做回滚。

二、两阶段提交( 2PC )

基于 XA 协议,有了两阶段提交的实现,在 JAVA 中可以使用基于两阶段提交的 atomikos 来进行分布式事务管理。

理解起来其实很简单,下面就从 2PC 的不同阶段和不同的状态来分析它的执行过程:

第一阶段

各参与者都成功的情况

你可能感兴趣的:(java,事务,两阶段提交,实现)