分布式事务
数据库本地事务
事务是指由一组操作组成的一个工作单元,具有以下四个特性。
A:原子性(Atomicity)
一个事务(Transaction)中的所有操作,要么全部执行成功,要么全部执行失败,不会结束在中间某个环节。如果有一部分成功一部分失败那么成功的操作要全部回滚(Rollback)到执行前的状态。
案例:
转账时有两个操作,转账方扣钱,收款方加钱,要么转账成功,要么转账失败,不允许出现转帐方钱扣了,收款方钱没加上。
C:一致性(Consistency)
执行一次事务会使数据从一个正确的状态转换到另一个正确的状态,执行前后数据都是完整的。
案例:
转账方 转出500块钱,收款方就要收到500块钱,数据正确状态的转换。
I:隔离性(Isolation)
在并发环境中、任何数据的改变只存在于自己的事务之中,由并发事务所做的修改必须与任何其他并发事务所做的修改是完全的隔离的,只有事务提交后其它事务才可以查询到最新的数据。
案例:
多个人同时转账是相互不影响的。
D:持久性(Durability)
持久性:事务成功完成后、对数据的改变会永久性的存储起来,即使发生断电宕机数据依然在。
案例:
转账操作完成后,就算断电,对刚刚转账的结果没有影响。
什么是分布式系统
部署在不同结点上的系统通过网络交互来完成协同工作的系统。
案例:
订单和库存业务,在订单系统下单成功后,在库存系统库存应该相应的减少。订单系统和库存系统是两个不同的系统,一次下订单减库存的业务就需要这两个系统协同工作来完成。
什么是分布式事务
就是多个系统通过网络协同完成一个事务的过程,一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,并且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。
并不强调多个系统访问了不同的数据库,即使多个系统访问的是同一个数据库也是分布式事务。
另外一种分布式事务的表现是,一个应用程序使用了多个数据源连接了不同的数据库,当一次事务需要操作多个数据源,此时也属于分布式事务,当系统作了数据库拆分后会出现此种情况在这里插入图片描述。
CAP定理(布鲁尔定理)
一致性(Consistency):服务A、B、C三个结点都存储了用户数据, 三个结点的数据需要保持同一时刻数据一致性。
可用性(Availability):服务A、B、C三个结点,其中一个结点宕机不影响整个集群对外提供服务,如果只有服务A结点,当服务A宕机整个系统将无法提供服务,增加服务B、C是为了保证系统的可用性。
分区容忍性(Partition Tolerance):分区容忍性就是允许系统通过网络协同工作,分区容忍性要解决由于网络分区导致数据的不完整及无法访问等问题。
浙公网安备 33010602011771号