Alibaba Seata 学习日记(分布式事务基础)
分布式事务基础
事务
- 概念:指的是一个操作单元,在这个操作单元中所有的操作最终要保持一致的行为,要么所有操作都成功,要么所有操作都撤销。
- 事务的4个特性
- 原子性(Atomicity): 操作这些指令时,要么全部执行,要么全部不执行。只要其中一个指令失败,所有指令都执行失败。数据进行回滚。回滚执行指令前的数据状态。
最小的操作单位
- 一致性(Consistency): 事务的执行使数据从一个状态转换为另一个状态,数据库的完整性约束没有被破坏。
结果是可预期的,比如转账A转账给B,A少的钱B那么就必须多出A少的钱,一致性是基础,也是最终目的,其他三个特性(原子性、隔离性和持久性)都是为了保证一致性的
- 隔离性(Isolation):隔离性是当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离。
事务之间不会相互干扰
- 持久性(Durability):当事务正确完成后,它对于数据的改变是永久性的。
不会轻易丢失
- 原子性(Atomicity): 操作这些指令时,要么全部执行,要么全部不执行。只要其中一个指令失败,所有指令都执行失败。数据进行回滚。回滚执行指令前的数据状态。
本地事务的实现
begin transaction;
//1.本地数据库操作:张三减少金额
//2.本地数据库操作:李四增加金额
commit transation;
分布式事务
分布式系统会把一个应用系统拆分为可独立部署的多个服务,因此需要服务与服务之间远程协作才能完成事务操作,这种分布式系统环境下由不同的服务之间通过网络远程协作完成事务称之为分布式事务.
分布式事务产生场景
-
跨JVM进程产生分布式事务
-
跨数据库实例
分布式事务的概念。与本地事务不同的是,分布式系统之所以叫分布式,是因为提供服务的各个节点分布再不同机器上,相互之间通过网络交互。不能因为有一点网络问题就导致整个系统无法提供服务,网络因素成为了分布式事务的考量标准之一。
reference
https://www.bilibili.com/video/BV1uJ411h7px?from=search&seid=17886022887642019485
https://www.it235.com/%E9%AB%98%E7%BA%A7%E6%A1%86%E6%9E%B6/SpringCloudAlibaba/seata.html#%E4%BA%8B%E5%8A%A1