什么是分布式事务以及分布式事务有哪些解决方案

什么是事务

什么是事务?举个生活中的例子:你去小卖铺买东西,“一手交钱,一手交货”就是一个事务的例子,交钱和交货必须全部成功,事务才算成功,任一个活动失败,事务将撤销所有已成功的活动。

什么是本地事务

本地事务就是指:单机事务,单机事务总共包含四个特性: 原子性,一致性,持久性以及隔离性

什么是分布式事务

分布式系统会把一个应用系统拆分为可独立部署的多个服务,因此需要服务与服务之间远程协作才能完成事务操作,这种分布式系统环境下由不同的服务之间通过网络远程协作完成事务称之为分布式事务,例如用户注册送积分事务、创建订单减库存事务,银行转账事务等都是分布式事务。

CAP理论

  1. 什么是CAP

CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency)(须知!:这里的一致性是指的强制一致性)、可用性(Availability)、分区容错性(Partition tolerance)。CAP 原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。故此,一般有两种CP或AP

> 一致性:  所有节点读到的数据必须保证是最新且是一致的(主从数据库同步进行数据同步时,被同步方资源
暂时不可用,当同步完才可用) (须知!:这里的一致性是指的强制一致性)
> 可用性: 必须保证任何时候接口都需要有响应结果,且不会出现超时或响应错误,重要一点实现可用性不能
锁对数据库资源锁定
> 分区容错性: 节点之间由于网络问题导致通信失败,必须能保证节点还能提供服务
  1. 为什么说CAP只能满足两个条件

一致性能保证所有节点读到的数据都是最新的 ,但是它牺牲了 数据库在同步时必须要使用同步操作去同步数据库才能保证数据一致性,既然只有同步操作才能保证一致性那么可用性就满足不了,因为一致性是需要锁定数据库资源从而达到一致性,所以只能是AP或CP

到这里有人可能就会问了,为什么不是CA呢,哈哈,其实道理也是很简单,如果能满足CA那么这三个条件必然能满足,上面就说了CA是不能同时满足的!

BASE理论

  1. 什么是BASE理论

BASE 理论是对 CAP中的一致性和可用性进行一个权衡的结果,理论的核心思想就是:我们无法做到强一致,但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性。

什么意思呢,就是说CAP如果使用了CP,不是不保证一致性了,而是舍去强一致性,改用为最终一致性,最终一致性代表的是,在一段时间内数据允许不一致,但最终会一致.

分布式常见解决方案

一.强一致性方案

  1. 两阶段提交(2PC) 具体实现有:XA和阿里的Seata框架

二.最终一致性方案(一般都是利用mq来实现最终一致性)

  1. TCC 具体实现有:tcc–tansation 和hmily框架,Seata框架
  2. 可靠消息最终一致性
  3. 最大努力通知

这两种方案什么情况下使用呢,什么时候使用强一致性,什么时候使用最终一致性,
举例,用户转账必须使用强一致性,张三转了钱,李四说没收到那不就乱套了么 ,哈哈,所以这里必须要使用强一致性,用户转完账是不是需要提示李四,您收到张三转账的金额提示啊,这时候就可以用最终一致性

上一章节:一套文章让你彻底理解运用分布式事务
下一章节: JAVA 强一致性 2PC两阶段提交介绍以及Seata AT模式实现

可以关注下博主的公众号,实时推送解决方案!
公众号

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值