ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2020-06-13 18:02:53  阅读:213  来源: 互联网

标签:事务 可用性 解决方案 最终 CAP 一致性 分布式


什么是事务

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

什么是本地事务

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

什么是分布式事务

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

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框架
  2. TCC 具体实现有:tcc–tansation 和hmily框架

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

  1. 可靠消息最终一致性
  2. 最大努力通知

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

下一章节讲解两阶段提交理论以及seata框架实现

标签:事务,可用性,解决方案,最终,CAP,一致性,分布式
来源: https://blog.csdn.net/qq_36872046/article/details/106714011

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有