分布式事务
1.什么是事务
访问并更新数据库中各种数据项的一个程序执行单元
通俗一点说就是,一手交钱一手交货,要么钱货两清,要么终止交易
2.什么是本地事务
通常我们使用关系型数据库来控制事务(是数据库本身的能力),数据库事务,应用程序主要靠关系型数据库来控制事务,通常单体架构中,数据库跟应用程序是在一起的(同一个服务器),所以基于关系型数据库的事务,又被称为本地事务
3.spring如何接管本地事务
使用:1.配置文件 2.注解
核心是阻止了原来返回的connection,返回了自己的connection
4.事务的ACID
原子性(atomicity):一个事务是一个不可分割的工作单位,事务中包括的操作要么都做,要么都不做。
一致性(consistency):事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。
隔离性(isolation):一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
持久性(durability):持久性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。
5.CAP
C:一致性:从数据库必须等待主数据库数据同步完成,才能给客户响应(过程阻塞)
A:可用性:我现在可以先返回就的数据给用户(从故武器没有获取主服务器最新的数据)
P:分区容错性:高可用,分布式系统中的任何一个节点挂了,都不影响其他节点
典型应用场景
CP:银行取钱
AP:准备发货中,支付中
6.BASE理论
7.什么是分布式事务
百度百科 - 分布式事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上
通俗来说:需要远程协助才能操作的事务,称之为分布式事务
8.分布式事务常见解决方案
seate
1.seate AT 与AX的区别
本质上都是2pc,但是AX是在数据库,AT是在业务层
AT多了一个TC
TM负责决议,TC负责通知RM,RM负责执行