分布式事务的介绍

回顾数据库事务
在这里插入图片描述

所有事物的四个特征

  • A:原子性(Atomicity),一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。
    事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。
    就像你买东西要么交钱收货一起都执行,要么发不出货,就退钱。
  • C:一致性(Consistency),事务的一致性指的是在一个事务执行之前和执行之后数据库都必须处于一致性状态。
    如果事务成功地完成,那么系统中所有变化将正确地应用,系统处于有效状态。
    如果在事务中出现错误,那么系统中的所有变化将自动地回滚,系统返回到原始状态。
  • I:隔离性(Isolation),指的是在并发环境中,当不同的事务同时操纵相同的数据时,每个事务都有各自的完整数据空间。
    由并发事务所做的修改必须与任何其他并发事务所做的修改隔离。事务查看数据更新时,数据所处的状态要么是另一事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看到中间状态的数据。
    打个比方,你买东西这个事情,是不影响其他人的。
  • D:持久性(Durability),指的是只要事务成功结束,它对数据库所做的更新就必须保存下来。
    即使发生系统崩溃,重新启动数据库系统后,数据库还能恢复到事务成功结束时的状态。
    打个比方,你买东西的时候需要记录在账本上,即使老板忘记了那也有据可查。

什么是分布式事务

分布式事务是指 支持事务的服务器、资源服务器、事务的参与者、事务管理器分布在不同的分布式系统上的不同节点(节点:node :指tomcat服务器)之上,且属于不同的应用
实质是 分布式事务保证了各个应用的数据库的数据的一致性

什么是分布式事务系统架构

本地事务时针对单个应用的数据一致性的 ,但是 基于SOA(service-oriented-archictecture 面向服务架构)的分布式应用环境,希望把不同的应用的数据库事务纳入到一个统一的全局大事务之中 ,这样就能保证各个应用的数据库的书库一致性,分布式事务系统就出现了,

CAP定理

C:(consistency) 一致性, 是指在多个副本中 对于数据的访问都能保持一致(严格一致性)性的事务特性,在分布式系统中在同一时间是否时同一个值
①强一致性:指每个应用在不同节点上的数据是一致的
②弱一致性:指数据更新后,访问服务时,上一次的访问的部分数据或全部数据不一定要让调用者看到 ,称之为弱一致性。
A:(availability)可用性,指系统给出的应用必须随时处于可用的状态,用户发出的每一次请求,服务器必须在合理的时间内对每一次的请求做出合适的响应,(不是错误和超时的响应)
P(网络分区容错性)在网络节点无法通信的情况下 ,节点被隔离,产生了网络分区,但是整个系统还是能工作的,

取舍策略

在这里插入图片描述

分布式事务解决方案

1.基于XA协议的两段提交(2PC:two-phase-commit),效率低-分布式事务很难做

1.1概念:在分布式系统中,保证每个节点的在提交时保持一致性的算法
1.2思路
①投票阶段(Voting phase)参与者将操作结果通知给协调者
②提交阶段(Commit phase) 收到参与者的通知 ,再向参与者发送通知,根据反馈的情况,考虑对参与者的操作结果是否提交或者回滚。
1.3缺陷

在这里插入图片描述

2.TCC三段提交,效率高(不推荐,补偿代码)

3.本地消息(MQ+Table)

4.事务消息(RocketMQ[alibaba])

5.seata[alibaba]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值