分布式事务 - 什么是分布式事务

什么是分布式事务

分布式事务指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。
换个简单的描述,就是多个事务之间再保持事务的特性,也就是多个事务之间保证结果的一致性

分布式理论

CAP定理

在理论计算机科学中,CAP定理(CAP theorem),又被称作布鲁尔定理(Brewer's theorem),它指出对于一个分布式计算系统来说,不可能同时满足以下三点。

  • 一致性(Consistency):等同于所有节点访问同一份最新的数据副本。
  • 可用性(Availability):每次请求都能获取到非错的响应——但是不保证获取的数据为最新数据。
  • 分区容错性(Partition tolerance):即使出现单个组件无法可用,操作依然可以完成。

以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在C和A之间做出选择。

理解CAP理论的最简单方式是想象两个节点分处分区两侧。允许至少一个节点更新状态会导致数据不一致,即丧失了C性质。如果为了保证数据一致性,将分区一侧的节点设置为不可用,那么又丧失了A性质。除非两个节点可以互相通信,才能既保证C又保证A,这又会导致丧失P性质。

cap

BASE理论

核心思想是无法做到强一致性(Strong consistency),但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性(Eventual consistency)。

  • 基本可用(Basically Available):分布式系统在出现不可预知故障的时候,允许损失部分可用性
  • 软状态(Soft state):软状态也称为弱状态,和硬状态相对,是指允许系统中的数据存在中间状态,并认为该中间状态的存在不会影响系统的整体可用性,即允许系统在不同节点的数据副本之间进行数据听不的过程存在延时。
  • 最终一致性(Eventually consistent):最终一致性强调的是系统中所有的数据副本,在经过一段时间的同步后,最终能够达到一个一致的状态。因此,最终一致性的本质是需要系统保证最终数据能够达到一致,而不需要实时保证系统数据的强一致性

硬状态:相对于原子性而言,要求多个节点的数据副本都是一致的,这是一种“硬状态”。

CAP 与 BASE 关系为:
在分布式的数据系统中,你能保证下面三个要求中的两个:一致性,可用性,以及分区容错性。在此模型上构建的系统将称作 BASE(基本上可用软状态最终一致)架构,不满足 ACID 性质。

XA规范

有了分布式事务的场景,就会有解决该问题的方式规范,XA规范就是解决分布式事务的规范。

在计算机技术上,XA规范是开放群组关于分布式事务处理(DTP的规范)。
该规范描述了全局的事务管理器与局部的资源管理器之间的接口,XA规范的目的是允许多个资源(如 数据库,应用服务,消息队列等等)在同一事务中访问,这样可以使ACID属性跨越应用程序而保持有效。
XA规范描述了资源管理器要支持事务性访问所必需做的事情。遵守该规范的资源管理器被称为 XA compliant。

XA规范提供了一种重要思想:

  1. 引入全局事务的控制节点,事务的协调者
  2. 多个本地事务划分多阶段提交(也就是2PC,3PC)

你可能感兴趣的:(分布式事务 - 什么是分布式事务)