`
islandoo
  • 浏览: 36558 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

两阶段事务简介

阅读更多

    实现分布式事务的关键就是两阶段提交协议。在此协议中,一个或多个资源管理器的活动均由一个称为事务协调器的单独软件组件来控制。此协议中的五个步骤如下:

 

 应用程序调用事务协调器中的提交方法。

 事务协调器将联络事务中涉及的每个资源管理器,并通知它们准备提交事务(这是第一阶段的开始)。

 为 了以肯定的方式响应准备阶段,资源管理器必须将自己置于以下状态:确保能在被要求提交事务时提交事务,或在被要求回滚事务时回滚事务。大多数资源管理器会 将包含其计划更改的日记文件(或等效文件)写入持久存储区中。如果资源管理器无法准备事务,它会以一个否定响应来回应事务协调器。

  事务协调器收集来自资源管理器的所有响应。

  在 第二阶段,事务协调器将事务的结果通知给每个资源管理器。如果任一资源管理器做出否定响应,则事务协调器会将一个回滚命令发送给事务中涉及的所有资源管理 器。如果资源管理器都做出肯定响应,则事务协调器会指示所有的资源管理器提交事务。一旦通知资源管理器提交,此后的事务就不能失败了。通过以肯定的方式响 应第一阶段,每个资源管理器均已确保,如果以后通知它提交事务,则事务不会失败。

 

图 1 和图 2 通过两个顺序图来说明两阶段提交协议。


图 1 事务提交

图 1 显示事务成功(提交)。图 2 显示由于某种原因,其中一个资源管理器无法提交时的两阶段提交协议。

图 2 事务被回滚

分享到:
评论

相关推荐

    分布式事务详细介绍

    1. **两阶段提交(2PC)**:这是一种经典的分布式事务协调机制,分为准备阶段和提交阶段。在准备阶段,协调者询问参与者是否准备好提交事务;在提交阶段,协调者根据参与者的响应决定是否提交事务。 2. **三阶段提交...

    JPA和分布式事务简介共5页.pdf.zip

    最常见的分布式事务协议是两阶段提交。它分为准备阶段和提交阶段。在准备阶段,协调者询问所有参与者是否准备好提交,如果所有参与者都同意,则进入提交阶段,否则事务回滚。 2. **补偿事务(Saga)** Saga是一种...

    26.第二十六阶段、微服务架构的分布式事务解决方案视频全集

    1. **两阶段提交(2PC)** - **准备阶段**:协调者向参与者发送“准备”请求,询问是否可以提交事务。 - **提交/回滚阶段**:如果所有参与者都准备好,则协调者发送“提交”命令;如果有任何一个参与者无法提交,则...

    分布式事务简介和解决思路

    1. **XA事务**:基于两阶段提交(2PC)协议,由一个协调者和多个参与者组成。协调者负责询问所有参与者是否准备提交,参与者返回准备状态后,协调者再决定是否全局提交。但2PC存在性能瓶颈和单点故障问题。 2. **...

    分布式事务实践 解决数据一致性

    还有XA以及两阶段提交,并通过实例演示了使用JTA,通过两阶段提交,实现多数据源的事务实现。... 4-1 Spring事务机制_基本接口 4-2 Spring事务机制_实现 4-3 Jpa事务实例 4-4 Jms事务原理 4-5 Jms-session事务实例 4...

    rest-tcc分布式事务

    - **Cancel** 阶段:如果Try阶段之后出现异常,则取消Try阶段的预留资源,回滚事务。 ##### 2.2 TCC模式的优势 - **低耦合性**:TCC模式对参与的服务所做的假设最少,每个服务只需支持TCC的基本接口即可。 - **...

    (源码)基于TCC分布式事务框架的分布式事务管理系统.zip

    TCC是一种分布式事务处理模式,通过将事务分为Try、Confirm和Cancel三个阶段,确保分布式系统中的数据一致性和完整性。本项目提供了完整的TCC事务管理功能,支持多种存储后端(如文件系统、JDBC、Redis、ZooKeeper等...

    spring事务配置的五种方式

    Spring框架提供了强大的事务管理功能,支持编程式和声明式两种事务处理方式。其中,声明式事务因其简单易用而被广泛采用。本文将详细介绍Spring中事务配置的五种方式,帮助开发者更好地理解和运用这些配置方法。 ##...

    seata实现分布式事务demo

    在Seata的AT模式(Automatic Transaction Mode)中,事务分为两个阶段: 1. **Try阶段**:每个服务执行本地事务,如果都成功则进入下一阶段。 2. **Commit/Cancel阶段**:TC根据所有服务的反馈决定是提交还是回滚...

    掌握分布式事务的艺术:深入MySQL XA事务处理

    ##### 1.2 XA 事务简介 XA 事务是基于 X/Open XA 规范的一种分布式事务处理机制。这种机制允许应用程序在一个全局事务中协调多个资源管理器(如数据库、消息队列等),从而确保事务的一致性和完整性。具体来说,XA ...

    微服务架构-分布式事务-视频教程

    - **定义**:分布式事务是指涉及两个或多个分布式数据存储节点的事务。这些节点可能位于不同的服务器上,甚至可能位于不同的地理位置。 - **挑战**:由于网络延迟、节点故障等因素,确保所有参与方的一致性变得...

    (源码)基于TCC分布式事务的支付系统.zip

    TCC是一种用于确保分布式系统中事务一致性的机制,通过将事务分为尝试(Try)、确认(Confirm)和取消(Cancel)三个阶段,确保在事务执行过程中出现错误时能够进行回滚操作,从而保证数据的一致性。 ## 项目的主要...

    龙果学院--微服务架构的分布式事务解决方案--第03节--常用的分布式事务解决方案介绍

    - 第一阶段(准备阶段):协调者向所有参与者发送“准备”请求,询问是否准备好提交事务。 - 第二阶段(提交阶段):如果所有参与者都同意,则协调者发送“提交”指令;如果有任何参与者拒绝,则发送“回滚”指令。 ...

    阿里云 专有云企业版 V3.8.2 全局事务服务 产品简介 20200417.pdf

    GTS通过两阶段提交(2PC)和补偿型事务(TCC)等机制来保证全局事务的一致性。 2. **应用场景**: - **电商系统**:在订单处理中,涉及到库存扣减、支付等多个子事务,GTS可以确保这些操作的原子性,避免出现库存...

    阿里云 专有云企业版 V3.12.0 全局事务服务 GTS 产品简介 20200622.pdf

    它使用两阶段提交(2PC)或者其他优化算法来协调各个参与的局部事务,确保在一个全局事务中,所有的操作要么全部成功,要么全部回滚,避免了数据不一致的情况。 2. **应用场景** - 多服务调用:在微服务架构中,一...

    Innodb存储引擎浅析—事务系统

    - **两阶段加锁**(2PL):通过加锁机制防止并发冲突。 - **多版本并发控制**(MVCC):允许并发读取未提交数据的不同版本。 #### MVCC详解 MVCC通过维护多个版本的数据来实现非阻塞读操作。在InnoDB中,每个事务...

    (源码)基于TCC分布式事务框架的订单支付系统.zip

    支持分布式事务的Try、Confirm、Cancel三个阶段,确保事务的原子性和一致性。 提供事务上下文的管理和传播,支持不同服务之间的协同操作。 2. 事务恢复 在事务失败时,自动触发恢复机制,确保事务的最终一致性。...

    阿里云 专有云企业版 V3.6.1 全局事务服务GTS 产品简介 - 20181105.pdf

    GTS采用了两阶段提交(2PC)和补偿事务(TCC)等分布式事务处理模式,结合本地事务和全局事务日志,实现事务的协调和回滚。同时,GTS还引入了事务超时、幂等性等机制来增强系统的稳定性和安全性。 5. **操作指南与...

    阿里云 专有云Enterprise版 V3.5.0 全局事务服务GTS 产品简介 - 20180710.pdf

    - **强一致性**:通过两阶段提交(2PC)或其他高级事务协议,确保所有参与的子事务要么全部成功,要么全部回滚,达到强一致性。 - **灵活扩展**:GTS支持横向和纵向扩展,可以根据业务需求动态调整资源,应对不同...

    (源码)基于SpringCloudNetflix的分布式事务管理系统.zip

    采用TCC设计思想,通过TryConfirmCancel三个阶段实现分布式事务管理。 通过HTTP协议进行服务间的事务协调,确保事务的一致性和可靠性。 2. 服务治理 使用Spring Cloud Netflix进行服务注册与发现,实现微服务间...

Global site tag (gtag.js) - Google Analytics