事务:操作最小单元,逻辑上一组操作,要么都成功,如果有任何一个失败,所有操作都失败。
事务的四个特征:
(1)原子性:构成事务的所有操作,要么都执行完成,要么全部不执行,不可能出现部分成功部分失败的情况。
(2)一致性:在事务执行前后,数据库都必须处于一致性状态。比如张三向李四转100元,转帐前和转账后的数据是正确状态这叫一致性,如果出现张三转出100元,李四账户没有增加100元,这就出现了数据错误,就没有达到一致性。
(3)隔离性:数据库中的事务一般都是并发的,隔离性是指并发的两个事务互不干扰,一个事务不能看到其他事务运行过程的中间状态。通过配置事务隔离级别可以避免脏读、重复度等问题。
(4)持久性:事务完成之后,该事务对数据的更改会持久化到数据库,且不会被回滚。
分布式事务:操作不同数据库的表。
随着互联网的快速发展,软件系统由原来的单体应用转变为分布式应用,分布式系统会把一个应用系统拆分为可独立部署的多个服务,因此需要服务与服务之间远程协作才能完成事务操作,这种分布式系统环境下由不同的服务之间通过网络远程协作完成事务称之为分布式事务,例如用户注册送积分事务、创建订单减库存事务,银行转账事务等都是分布式事务。
分布式事务解决方案
基于XA协议的两阶段提交(2PC)
代码补偿事务(TCC)
本地消息表
MQ事务消息



