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

文章资讯 2020-06-14 20:53:11

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

什么是事务什么是事务?举个生活中的例子:你去小卖铺买东西,“一手交钱,一手交货”就是一个事务的例子,交钱和交货必须全部成功,事务才算成功,任一个活动失败,事务将撤销所有已成功的活动。什么是本地事务本地事务就是指:单机事务,单机事务总共包含四个特性:原子性,一致性,持久性以及隔离性什么是分布式事务分布式系统会把一个应用系统拆分为可独立部署的多个服务,因此需要服务与服务之间远程协作才能完成事务操作,这种分布式系统环境下由不同的服务之间通过网络远程协作完成事务称之为分布式事务,例如用户注册送积分事务、创建订单减库存事务,银行转账事务等都是分布式事务。CAP理论什么是CAP
CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency)(须知!:这里的一致性是指的强制一致性)、可用性(Availabity)、分区容错性(Partitionterance)。CAP原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。故此,一般有两种CP或AP>一致性:所有节点读到的数据必须保证是最新且是一致的(主从数据库同步进行数据同步时,被同步方资源
暂时不可用,当同步完才可用)(须知!:这里的一致性是指的强制一致性)
>可用性:必须保证任何时候接口都需要有响应结果,且不会出现超时或响应错误,重要一点实现可用性不能
锁对数据库资源锁定
>分区容错性:节点之间由于网络问题导致通信失败,必须能保证节点还能提供服务
为什么说CAP只能满足两个条件
一致性能保证所有节点读到的数据都是最新的,但是它牺牲了数据库在同步时必须要使用同步操作去同步数据库才能保证数据一致性,既然只有同步操作才能保证一致性那么可用性就满足不了,因为一致性是需要锁定数据库资源从而达到一致性,所以只能是AP或CP
到这里有人可能就会问了,为什么不是CA呢,哈哈,其实道理也是很简单,如果能满足CA那么这三个条件必然能满足,上面就说了CA是不能同时满足的!BASE理论什么是BASE理论
BASE理论是对CAP中的一致性和可用性进行一个权衡的结果,理论的核心思想就是:我们无法做到强一致,但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性。
什么意思呢,就是说CAP如果使用了CP,不是不保证一致性了,而是舍去强一致性,改用为最终一致性,最终一致性代表的是,在一段时间内数据允许不一致,但最终会一致.分布式常见解决方案
一.强一致性方案两阶段提交(2PC)具体实现有:XA和阿里的Seata框架
TCC具体实现有:tcc–tansation和hmily框架二.最终一致性方案(一般都是利用mq来实现最终一致性)可靠消息最终一致性
最大努力通知这两种方案什么情况下使用呢,什么时候使用强一致性,什么时候使用最终一致性,
举例,用户转账必须使用强一致性,张三转了钱,李四说没收到那不就乱套了么,哈哈,所以这里必须要使用强一致性,用户转完账是不是需要提示李四,您收到张三转账的金额提示啊,这时候就可以用最终一致性
下一章节讲解两阶段提交理论以及seata框架实现