分布式事务01-分布式事务概述 旧城等待, 2022-04-25 09:54 311阅读 0赞 ### 文章目录 ### * 1.分布式事务产生的背景 * * 1.1 分布式事务在不同场景下如何产生 * 1.2 案例 * 2.事务理论知识 * * 2.1 ACID(酸碱平衡理论) * 2.2 CAP(帽子原理) * * 2.2.1 什么是CAP * 2.2.2 CAP原理 * 2.3 BASE理论 * 2.4 柔性事务和刚性事务 * * 2.4.1 柔性事务解决方案 # 1.分布式事务产生的背景 # > 在微服务环境下,因为会根据不同的业务会拆分成不同的服务,比如会员服务、订单服务、商品服务等,让专业的人做专业的事情,每个服务都有自己独立的数据库,并且是独立运行,互不影响。服务与服务之间通讯采用RPC远程调用技术,但是每个服务中都有自己独立的数据源,即自己独立的本地事务。两个服务相互通讯的时候,两个本地事务互不影响,从而出现分布式事务产生的原因。 ## 1.1 分布式事务在不同场景下如何产生 ## * 传统项目:大部分情况下,不会产生分布式事务,但是在项目中如果采用多数据源方式。 * 分布式环境:远程调用双方都存在自己的本地事务 ## 1.2 案例 ## ![在这里插入图片描述][13E1E8E225344C01BA5D80A99FF3A312_ynotemdtimestamp_1559271947764] # 2.事务理论知识 # ## 2.1 ACID(酸碱平衡理论) ## > 数据库管理系统中事务(transaction)的四个特性(分析时根据首字母缩写依次解释): * 原子性(Atomicity) 原子性是指事务是一个不可再分割的工作单元,事务中的操作要么都发生,要么都不发生 * 一致性(Consistency) 一致性是指在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。这是说数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性 * 隔离性(Isolation) 多个事务并发访问时,事务之间是隔离的,一个事务不应该影响其它事务运行效果。 * 持久性(Durability) 这是最好理解的一个特性:持久性,意味着在事务完成以后,该事务所对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。(完成的事务是系统永久的部分,对系统的影响是永久性的,该修改即使出现致命的系统故障也将一直保持) ## 2.2 CAP(帽子原理) ## ### 2.2.1 什么是CAP ### ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMxNDYzOTk5_size_16_color_FFFFFF_t_70] > 由于对系统或者数据进行了拆分,我们的系统不再是单机系统,而是分布式系统,针对分布式系统的CAP原理包含如下三个元素。 * C:Consistency 一致性。在分布式系统中的所有数据 备份,在同一时刻具有同样的值,所有节点在同一时刻读取的数据都是最新的数据副本。 * A:Availability 可用性,好的响应性能。完全的可用性指的是在任何故障模型下,服务都会在有限的时间内处理完成并进行响应。 * P: Partition tolerance 分区容忍性。尽管网络上有部分消息丢失,但系统仍然可继续工作。 ### 2.2.2 CAP原理 ### > CAP原理指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。因此在进行分布式架构设计时,必须做出取舍。而对于分布式数据系统,分区容忍性是基本要求,否则就失去了价值。因此设计分布式数据系统,就是在一致性和可用性之间取一个平衡。对于大多数web应用,其实并不需要强一致性,因此牺牲一致性而换取高可用性,是目前多数分布式数据库产品的方向。 > 当然,牺牲一致性,并不是完全不管数据的一致性,否则数据是混乱的,那么系统可用性再高分布式再好也没有了价值。牺牲一致性,只是不再要求关系型数据库中的强一致性,而是只要系统能达到最终一致性即可,考虑到客户体验,这个最终一致的时间窗口,要尽可能的对用户透明,也就是需要保障“用户感知到的一致性”。通常是通过数据的多份异步复制来实现系统的高可用和数据的最终一致性的,“用户感知到的一致性”的时间窗口则取决于数据复制到一致状态的时间。 ## 2.3 BASE理论 ## * 基本可用(Basically Available):指分布式系统在出现故障的时候,允许损失部分可用性,保证核心可用。但不等价于不可用。比如:搜索引擎0.5秒返回查询结果,但由于故障,2秒响应查询结果;网页访问过大时,部分用户提供降级服务,等。 * 软状态/柔性事务(Soft-state):软状态是指允许系统存在中间状态,并且该中间状态不会影响系统整体可用性。即允许系统在不同节点间副本同步的时候存在延时。 * 最终一致性(Eventual Consistency): 系统中的所有数据副本经过一定时间后,最终能够达到一致的状态,不需要实时保证系统数据的强一致性。最终一致性是弱一致性的一种特殊情况。BASE理论面向的是大型高可用可扩展的分布式系统,通过牺牲强一致性来获得可用性。ACID是传统数据库常用的概念设计,追求强一致性模型。 是基于CAP定理演化而来,是对CAP中一致性和可用性权衡的结果。 核心思想:即使无法做到强一致性,但每个业务根据自身的特点,采用适当的方式来使系统达到最终一致性。 ## 2.4 柔性事务和刚性事务 ## * 柔性事务满足BASE理论(基本可用,最终一致) * 刚性事务满足ACID理论 ### 2.4.1 柔性事务解决方案 ### 1. 两阶段型 2. 补偿型 3. 异步确保型 4. 最大努力通知型几种。 [13E1E8E225344C01BA5D80A99FF3A312_ynotemdtimestamp_1559271947764]: https://note.youdao.com/yws/public/resource/b05a92654b4f508e4f38395ca48f57b5/13E1E8E225344C01BA5D80A99FF3A312?ynotemdtimestamp=1559271947764 [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMxNDYzOTk5_size_16_color_FFFFFF_t_70]: /images/20220125/534c6ecf4bbc40829c52bab10c9e3486.png
相关 分布式-分布式事务 分布式事务 文章目录 分布式事务 一,本地消息表 二,2PC 两阶段提交 三,3PC 三段式提交 四,T 待我称王封你为后i/ 2022年11月27日 15:40/ 0 赞/ 244 阅读
相关 【分布式事务】概述 【背景】 随着单体应用的缺陷日益明显,越多越多的公司都从传统的单体应用模式向新型的分布式应用模式转变。 实际上,在分布式应用带来巨大优势的同时,也 刺骨的言语ヽ痛彻心扉/ 2022年06月10日 05:08/ 0 赞/ 159 阅读
相关 分布式事务01-分布式事务概述 文章目录 1.分布式事务产生的背景 1.1 分布式事务在不同场景下如何产生 1.2 案例 2.事务理论知识 2.1 AC 旧城等待,/ 2022年04月25日 09:54/ 0 赞/ 312 阅读
相关 分布式事务 一、前言 在单个数据库实例时候,我们可以使用一个数据源的事务([本地事务][Link 1] )来保证事务内的多个操作要么全部执行生效,要么全部不生效。在多数据库实例节点时 冷不防/ 2022年04月14日 02:09/ 0 赞/ 326 阅读
相关 分布式事务概述 A distributed transaction is a [database transaction][] in which two or more netwo 短命女/ 2022年04月04日 07:00/ 0 赞/ 206 阅读
相关 分布式事务 什么是分布式事务 分布式事务涉及到操作多个数据库的事务,分布式事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于分布式系统的`不同节点上`。一个分布式事务可 Dear 丶/ 2022年03月10日 15:27/ 0 赞/ 206 阅读
相关 分布式事务 1、分布式事务产生的背景 在微服务环境下,因为会根据不同的业务会拆分成不同的服务,比如会员服务、订单服务、商品服务等,让专业的人做专业的事情,每个服务都有自己独立的数据库,并 - 日理万妓/ 2021年10月25日 14:09/ 0 赞/ 395 阅读
相关 分布式事务 阅读: 深入理解分布式事务,高并发下分布式事务的解决方案 [https://blog.csdn.net/qq\_32534441/article/details/890 红太狼/ 2021年10月13日 01:13/ 0 赞/ 427 阅读
相关 分布式事务 在分布式系统中,为了保证数据的高可用,通常,我们会将数据保留多个副本(replica),这些副本会放置在不同的物理的机器上。为了对用户提供正确的 CRUD 等语义,我们需... 灰太狼/ 2020年04月24日 17:42/ 0 赞/ 907 阅读
还没有评论,来说两句吧...