理解事务处理的核心概念
什么是事务?
- 事务是一种机制,把成组的操做视为一个操做进行处理
- 在事务处理中,要么全部的操做都执行,要么全部的操做都不执行
- 在事务中涉及的操做可能依赖于不少不一样的数据库和服务器
事务处理的ACID属性
- 事务是由一系列首字母缩略词ACID属性定义的
- ACID表明:
- Atomic 原子性
- Consistent 一致性
- Isolated 独立性
- Durable 持久性
咱们来看一个例子:未使用事务的资金转帐过程:数据库
成功的转帐:编程
失败的转帐过程:服务器
咱们看到失败的转帐过程:总额减小,帐户达到不一致的状态。分布式
咱们再看一下使用事务的成功转帐过程:spa
A、将使用事务的变化进行缓冲接口
若是转帐成功,将提交变化(使永久改变)
事务
什么是分布式事务
- 一种资源,如数据库,是由被称为资源管理器(RM)的软件控制的。
- 本地事务是处理单个资源管理器的事务
- 分布式事务是协同或横跨多个资源管理器的事务
- 多个资源管理器的协做是由事务管理器完成的
- 事务一般是指事务上下文(transaction context)。
两阶段提交协议
- 2PC(两阶段提交)协议使用两个步骤提交一个分布式事务的变化
- 阶段1请求全部的资源管理器准备实现改变,若是其中任何一个没有准备好,则该事务将异常中断
- 阶段2请求全部的资源管理器实际提交而且实现永久的改变
- 全局事务ID(XID)用于跟踪全部与分布式事务相关的改变。
XA(扩展的体系结构)
XA:资源
- 是在WebLogic Server和资源管理器之间使用的接口
- 实现两阶段提交协议
- 容许编程控制由分布式事务所涉及的资源管理器
事务和资源管理器
咱们看一下成功的两阶段提交:io
咱们很容易的看得出来:
扩展
阶段1:准备阶段
阶段2:实现提交
咱们这部分主要讲解了事务的核心概念与ACID属性。