目录
1. 复习总结
- 1、事务定义
事务是代表一个或者一系列操作的最小逻辑单元,单元内的所有操作要么都成功、要么都失败,不存在中间状态。
- 2、事务机制存在的目的(数据最终的一致性)
就是无论我们的操作过程中是成功、失败、异常、或是受到干扰的情况下,事务都能保证我们数据最终的一致性。
- 3、举一个事务的案例(转账)
案例:转账(以下事务中包含3个逻辑操作)
A账户余额有1000元,B账户余额0元,在这个基础上A向B转账400元,流程如下:
1、查询A账户余额,看金额是>=400元。
2、满足条件则先从A账户扣款400元(当前A余额=600、B当前余=0)。
3、然后再向B账户增加400元(当前A余额=600、当前B余额=400)。
- 4、事务的特性(ACID)
原子性(tomicty):对应到上面的转账操作中,原子性就代表(检查余额、转账、到账)三个步骤就是一个整体
一致性(Consistency):数据最终的一致性
隔离性(Isolation):隔离性是说两个事务的执行都是独立隔离开来的,事务之间不会相互影响,多个事务操作一个对象时会以串行等待的方式保证事务相互之间是隔离的
持久性(Durability):事务一旦成功,修改的数据都会被持久化,不会因为异常、宕机而造成数据错误或丢失。
一致性是目的,其他3个都是为实现一致性要做的事情。
2. seata 分布式事务布
定义:一次大的操作有多个小操作组成,这些小操作分布在不同的服务器上,分布式事务要保证所有小操作要么全部成功、要么全部失败。
本质上:分布式事务就是为了保证不同数据库的数据一致性(因位微服务中,每一个服务有独立数据源的思想)。因此服务拆分后,必定涉及到分布式事务
3. 参考资料
(1)数据库事务ACID https://zhuanlan.zhihu.com/p/27789602
(2)seata 分布式事务布 https://mp.weixin.qq.com/s/hZRk458Nf_vdIPy-425jgQ