搜索
写经验 领红包
 > 育儿

分布式事务种类(分布式事务的作用)

导语:分布式事务——事务的四大特性

 事务的特性总体来说,事务存在四大特性,分别是原子性(Atomic)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability),如图1-1所示,因此,事务的四大特性又被称为ACID。

1.1 原子性

事务的原子性指的是构成事务的所有操作要么全部执行成功,要么全部执行失败,不可能出现部分执行成功,部分执行失败的情况。例如,在转账业务中,张三向李四转账100元,于是张三的账户余额减少100元,李四的账户余额增加100元。在开启事务的情况下,这两个操作要么全部执行成功,要么全部执行失败,不可能出现只将张三的账户余额减少100元的操作,也不可能出现只将李四的账户余额增加100元的操作。

1.2 一致性

事务的一致性指的是在事务执行之前和执行之后,数据始终处于一致的状态。例如,同样是转账业务,张三向李四转账100元,且转账前和转账后的数据是正确的,那么,转账后张三的账户余额会减少100元,李四的账户余额会增加100元,这就是数据处于一致的状态。如果张三的账户余额减少了100元,而李四的账户余额没有增加100元,这就是数据处于不一致状态。

1.3 隔离性

事务的隔离性指的是并发执行的两个事务之间互不干扰。也就是说,一个事务在执行过程中不能看到其他事务运行过程的中间状态。例如,在张三向李四转账的业务场景中,存在两个并发执行的事务A和事务B,事务A执行扣减张三账户余额的操作和增加李四账户余额的操作,事务B执行查询张三账户余额的操作。在事务A完成之前,事务B读取的张三的账户余额仍然为扣减之前的账户余额,不会读取到扣减后的账户余额。

注意:MySQL通过锁和MVCC机制来保证事务的隔离性

1.4 持久性

事务的持久性指的是事务提交完成后,此事务对数据的更改操作会被持久化到数据库中,并且不会被回滚。例如,在张三向李四转账的业务场景中,在同一事务中执行扣减张三账户余额和增加李四账户余额的操作,事务提交完成后,这种对数据的修改操作就会被持久化到数据库中,且不会被回滚。

免责声明:本站部份内容由优秀作者和原创用户编辑投稿,本站仅提供存储服务,不拥有所有权,不承担法律责任。若涉嫌侵权/违法的,请反馈,一经查实立刻删除内容。本文内容由快快网络小熊创作整理编辑!