分布式事务详细介绍和LCN事务框架seata事务框架介绍

分布式事务与Seata开发总结.pdf 1、详细介绍了Seata阿里分布式事务中间件; 2、对整个分布式事务解决方案原理进行了详细的分析,包括tcc、xa、saga等解决方案 3、IT老齐老师视频资料配套pdf; 立即下载

1.什么是分布式事务:    

      1.一阶段失败:  这种最好处理,直接不调用二阶段代码

      2.一阶段成功,二阶段正常执行代码失败,返回错误码:  这种情况只需要一阶段根据错误码抛出异常回滚就好了

      3.一阶段成功,但是调用二阶段接口的时候,因为网络原因,早成了下面几种情况:

          ①请求未到达二阶段接口中,此时一阶段正常根据异常回滚就可以了

          ②请求已经到达二阶段中.发起方超时自己发生了异常,这里又有两种情况:

              二阶段已经检验完毕,执行完代码,提交了事务:  这里就会造成数据不一致的情况 (seata回滚的逻辑再参与方,而不再发起方,所以也已经解决了)

              二阶段还未进行(如果自己实现的代码校验事务,这种情况很难处理,事务框架已经进行了处理,seata会首先获取全局锁,再一阶段回滚的情况下,二阶段获取不到全局锁)

1.分布式事务 二阶段提交:

    1. 事务管理器和本地资源管理器。其中本地资源管理器往往由数据库实现

    2.阶段一为准备阶段,即所有的参与者准备执行事务并锁住需要的资源。参与者执行代码准备提交数据的时候,

        向事务管理器报告代码执行结果。

    3.阶段二为提交阶段。事务管理器根据参与者报告的执行结果,来进行提交或者回滚消息.

   总结:  

    ① 事务执行阶段会一直占用着数据库资源不释放

    ②没有进行预校验

    ③事务管理器挂掉之后,会一直锁住数据库资源,不会释放

2.分布式事务 三阶段提交

    比二阶段事务,多了一个代码执行前预校验,和事务管理器挂掉之后,有超时时间,到了之后都会提交事务

   总结:   事务执行阶段会一直占用着数据库资源不释放

3.事务框架介绍

    一: LCN三阶段事务框架执行流程图:

    

 

   二: 阿里的seata

        1. 事务协调器:维护全局事务的运行状态,负责协调并驱动全局事务的提交或者回滚

        2 . 事务管理器: 控制全局事务的边界,负责开启一个全局事务,并最终发起全局提交或者回滚的决议

        3. 资源管理器:控制分支事务,负责分支注册,状态汇报,并接收事务协调器的指令,驱动本地事务提交或者回滚 

        可以通过注册中心部署集群模式,实现高可用的切换,同时事务分组的模式,也可以快速切换到另外一个事务集群.

        执行流程:

            一阶段.首先获取全局锁,执行事务代码成功后,直接把业务数据和回滚日志提交到数据库,释放数据库连接资源

           二阶段: 首先获取全局锁,获取到之后,执行事务代码成功,快速提交到异步队列中,批量提交到数据库中,执行代码失败,根据回滚日志,回滚一阶段提交的数据.

        总结:

           优点:  从seata执行流程来看,他的性能优化,主要体现在一阶段释放数据库资源,二阶段提交快速化

 三.用阿里云MQ来解决

     出现原因:

       因为服务之间互相调用大多数都是http协议,而当调用另外一个服务接口的时候因为出现网络波动,造成发生异常回滚,

      可能另外一个服务已经收到消息,开始处理事物了,这就会造成脏数据

     解决:

        而阿里云MQ是用的TCP协议,所以首先他性能非常好,而且他本身发送MQ的时候会确认连接信息,然后在发送,在一定程度上

        解决了幂等问题,当另外一个服务接收到消息后,处理完成后,又会确认收到消息, 当处理完成事务后,发送消息给第一个服务,

        如果第一个服务长时间接收不到消息,就采用定时任务轮询查询事务结果

   以上使用的是普通消息,但是还是没有根本解决问题,只是弱事务

   事务消息:

   

   

 事务消息发送步骤如下:

  1. 发送方将半事务消息发送至消息队列 RocketMQ 服务端。

  2. RocketMQ 服务端将消息持久化成功之后,向发送方返回 Ack 确认消息已经发送成功,此时消息为半事务消息。

  3. 发送方开始执行本地事务逻辑。

  4. 发送方根据本地事务执行结果向服务端提交二次确认(Commit 或是 Rollback),服务端收到 Commit 状态则将半事务消息标记为可投递,订阅方最终将收到该消息;服务端收到 Rollback 状态则删除半事务消息,订阅方将不会接受该消息。

  消费方:

   处理完成本地事务后,确认收到消息,如果确认时候发送网络波动,请重新确认消息,同时做好重复消息的判断

  事务消息回查步骤如下:

  1. 在断网或者是应用重启的特殊情况下,上述步骤 4 提交的二次确认最终未到达服务端,经过固定时间后服务端将对该消息发起消息回查。

  2. 发送方收到消息回查后,需要检查对应消息的本地事务执行的最终结果。

  3. 发送方根据检查得到的本地事务的最终状态再次提交二次确认,服务端仍按照步骤 4 对半事务消息进行操作。

总结:

   优点:  性能比seata好一些,因为他无论哪个阶段都没有长期占用数据库资源

   缺点: 可能修改库存或者用户余额的地方不止一个入口,seata可以暂时锁住其他入口,MQ方式没有办法做到

             一阶段如果提交成功,因为二阶段接口响应超时,发生回滚,但是二阶段请求已经接收到,并且提交成功了,就会造成脏数据.

  问题:

       1. 发送的时候因为网络波动造成异常,本地事务回滚:   

               会主动告诉已接收成功,并且不会发送给消费方

       2. 发送成功但是MQ没有接收到消息,会主动提供接口去访问是否发送成功消息,从而选择重新发送还是回滚

       3.消费方收到消息,会告诉MQ是否消费成功MQ

 

分布式事务的问题专业名词解释

    ① 空回滚 :  意思就是 在方法中还没有提交到数据库,发生了异常,这个时候事务方法需要回滚,这个时候就是空回滚因为数据库里面没有这条记录,

    ②幂等: 是发起方服务执行完业务代码后,在调用参与方服务的时候,结果发生了网络故障,然后参与方其实收到请求了,但是事物管理器认为网络故障,没收到请求,会再次尝试请求,重复调用参与方

                  简单来讲,就是会发生多次重复调用.

   ③悬挂: 发起方在调用参与方的时候,结果因为网络原因调用超时,就会通知 TC 回滚该分布式事务,可能回滚完成后,RPC 请求才到达参与者,真正执行,从而造成悬挂

 

           

     

LCN分布式事务框架详解 该资源包含LCN分布式介绍PPT、教学视频、项目整合demo等资源,对于想了解LCN框架的用户非常有用。 立即下载

相关推荐

10X Visium空间转录组学入门:从芯片结构到数据分析全流程解析(附避坑指南)

本文全面解析10X Visium空间转录组学技术,从芯片物理结构、探针化学原理到湿实验全流程操作与避坑指南,并详细介绍了从FASTQ数据到空间可视化的核心分析流程。文章旨在帮助科研人员跨越从理论到实操的鸿沟,掌握从样本准备、文库构建到使用Space Ranger和Seurat进行数据分析与可视化的完整路径,为组织生物学研究提供清晰的实践指引。

weixin_29306011的博客 163

分布式事务LCN和seata对比

一、LCN实现原理 1.发起方与参与方都与我们的LCN管理器一直保持长连接; 2.发起方在调用接口之前,先向LCN管理器申请一个全局的事务分组id; 3.发起方调用接口的时候在请求头中传递事务分组id; 4.参与方获取到请求头中有事务分组的id的,则当前业务逻辑执行完实现假关闭,不会提交或者回滚当前的事务。 5.发起方调用完接口后,如果出现异常的情况下,在通知给事务协调者回滚事务,这时候事务协调则告诉给参与方回滚当前的事务。 二、Seata实现原理 1.TM(发起方)连接到我们的TC事务协调者,创建一.

AttributeSet的博客 3001

Fedproto:原型聚合的联邦学习框架

文中说明,联邦学习通过计算传递梯度聚合模型时,客户端之间的异构性通常会阻碍模型优化收敛和泛化性能。故本文提出新的FedProto框架,将梯度替换成为原型,通过计算、聚合从不同客户端收集到的本地原型,然后将全局原型发送回所有客户端,以规范本地模型的训练。对每个客户机进行局部训练的目的是最小化对本地数据的分类损失,同时保持生成的本地原型足够接近相应的全局原型(损失函数最小+正则)。什么是原型?文中提到:“

weixin_47754029的博客 2650

分布式事务选型

Lcn Lock(锁定事务单元)、Confirm(确认事务)、Notify(通知事务),属于两阶段提交 LCN分布式事务框架是一款事务协调性的框架,框架本身并不创建事务,只是对本地事务做协调控制。因此该框架与其他第三方的框架兼容性强,支持所有的关系型数据库事务,支持多数据源,支持与第三方数据库框架一块使用 特点 无侵入式支持分布式事务。 支持多种模式混合使用。 支持关系型数据、NoSQL数据库。 支持SpringCloud Dubbo等RPC框架。 支持负载均衡与集群化部署。 高性能与高稳定性。 S

ZJX103RLF的博客 773

SPSS中的数据分析—信度效度检验【1】

前一段时间跟大家分享了好几篇关于EXCEL方面的数据分析知识,不知道大家都掌握得怎么样了。今天咱们换个口味,给大家讲一下关于SPSS中的数据分析——信度效度检验。 现阶段正处在毕业季阶段,很多同学可能都正在忙着去弄自己的论文和答辩(不知道大家在翟天临上热搜这个事情上有没有做出过一定贡献),很多时候我们在写论文答辩甚至于其他课题研究的时候都会选择用问卷这种形式来收集数据。最后我们只需要针对问卷所取...

小白数据营的博客 6万+

Stable Diffusion跑图总爆显存?别急着换显卡,试试这个PYTORCH_CUDA_ALLOC_CONF参数调优

本文深入解析了Stable Diffusion运行中常见的显存不足问题,特别是由显存碎片化导致的假性OOM现象。通过详细讲解PYTORCH_CUDA_ALLOC_CONF参数中的max_split_size_mb设置技巧,提供了一套完整的显存优化方案,帮助用户在无需升级硬件的情况下显著提升AI绘画的稳定性与效率。

weixin_42524100的博客 347

Seata与Lcn的区别

已成功起飞!将自己进大厂前花4w买的java全套教程,整整300集,现在拿出来分享给大家!拿走不谢!从入门到精通 学会即可就业!_哔哩哔哩_bilibili 相同点 a、都能解决分布式事务问题 b、都使用AOP代理事务 c、事务的提交和回滚都是由发起方决定。 不同点 核心:事务的回滚机制不一致,LCN是全局假关闭事务,Seata是采用undo_log生成逆向sql回滚操作。 a、LCN的事务代理是全局的,采用了假关闭模式。 Seata事务代理只是代理局部各自的事务,在原生sql的前后记录了操作

jmysql的博客 1110

传感器使用——ESP-WROOM-32 and INMP441麦克风音频采集

传感器使用——ESP-WROOM-32 and INMP441麦克风音频采集,数据显示及matlab操作界面。

qq_41958946的博客 7355

分布式事务:Raincat、TX-LCN、Seata 介绍

分布式事务:Raincat、TX-LCN、Seata 介绍 Raincat , 帮助文档 , github , 1千多星 遗憾的是不支持 2.7 (Support for the dubbo framework Less than 2.7 version) TX-LCN , 官方文档 , github , 3千多星 , 5.0以后由于框架兼容了LCN(2pc)、TCC、TXC 三种事务...

Dong滴个Dong的博客 7981

100 道大数据开发技术原理与实战面试宝典(必过答案详细解析)I

在数字化浪潮席卷全球的今天,大数据开发工程师已成为企业数字化转型的核心力量。无论是互联网巨头的用户行为分析,还是金融机构的风险控制,亦或是智慧城市的数据中枢,都离不开大数据技术的支撑。然而,面对BAT等头部企业严格的面试要求,候选人不仅需要掌握扎实的理论基础,更需具备将技术落地的实战能力。本文基于历年高频面试题与企业真实场景需求,梳理100道必考题目,涵盖基础概念、框架原理、算法设计、性能优化等核心领域,助你构建完整的知识体系,从容应对面试挑战。

AI天才研究院 1388

【护网必备】Windows平台shellcode免杀加载器

bypass:McAfee、金山(数字签名)、火绒、ESET、卡巴企业版(时间5s 抖动50 Sleep_mask)、360全家桶(物理机)、Norton(加白程序资源)、WDF(PC)、WDF(Server)、Symantec(加白程序资源)bypass:金山(数字签名)、火绒、ESET、360全家桶(物理机)、WDF(PC)、WDF(服务器提示复查(关云保护))、McAfee、Norton(加白程序资源)、卡巴企业版(时间5s 抖动50 Sleep_mask)必须使用Bof操作,shell运行就掉线。

Fly_鹏程万里 1186

分布式事务解决方案tx-lcn和seata简单对比分析

tx-lcn是本地事务协调,本身并不会产生事务 seata 是两阶段提交事务,第一阶段解析业务sql并生成对应快照,第二阶段是提交/回滚,并删除快照

婲落ヽ红颜谇的博客 4609

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

关于分布式事务: 阿里开源的分布式事务框架 Seata 和 LCN的分析

之前使用过LCN分布式事务, 最近看到面试者简历中另一种方案 Seata, 通过它来在实战中解决分布式事务的问题.故 去简单了解了一下Seata是什么, 和LCN的区别在哪里, 如果是你 你怎么选择解决方案呢? 下面, 简单针对俩个方案 进行简单的一个分析和对比: 相同点 a、都能解决分布式事务问题 b、都使用AOP代理事务 c、事务的提交和回滚都是由发起方决定。 不同点: 核心:事务的回滚机制不一致,LCN是全局假关闭事务,Seata是采用undo_log生成逆向sql回滚操作。 a、LCN的事务代

张小挑的博客 2366

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

分布式事务Seata、LCN的原理深度剖析

分布式事务解决方案综述 本文系统介绍了分布式事务的产生背景及解决方案。主要内容包括: 分布式事务产生原因:多数据源、RPC调用异常等情况导致数据不一致 常见解决方案框架:JTA+Atomikos、MQ最终一致性、RocketMQ事务消息、LCN模式、Seata等 CAP与BASE理论:分析了分布式系统设计中的一致性、可用性和分区容错性权衡 LCN实现原理:通过事务分组ID和代理数据源实现事务协调,但存在死锁风险 Seata架构设计:采用TC/TM/RM三组件模式,通过undo_log逆向SQL实现回滚,但可

gonghua0502的专栏 1401

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

分布式 - 分布式事务面试题

文 1 分布式事务面试题 现在Java面试,分布式系统、分布式事务几乎是标配。而分布式系统、分布式事务本身比较复杂,大家学起来也非常头疼。 最为常见的面试题: 问:分布式事务了解吗?你们是如何解决分布式事务问题的? (标准答案:见末尾) 问题1、分布式事务产生的背景? 在传统的单体项目中,多个不同的业务逻辑使用的都是同一个数据源,使用的都是同一个事务管理器,所以不会存在事务问题。 在分布式或者微服务架构中,每个服务都有自己的数据源,使用不同事务管理器,如果A服务去调用B服务,B服务执行失败了,

Pastxu的小屋 1万+

openfeign seata事务不回滚_极限 Spring (14) 分布式事务框架 Seata

数据库事务的隔离级别有 4 种,由低到高分别如下,读未提交 Read uncommitted: 一个事务在执行过程中看到其他事务没有提交的 insert 和 update。读已提交 Read committed: 一个事务在执行过程中看到其他事务已经提交的 insert 和 update。可重复读 Repeatable read: 一个事务在执行过程中看到其他事务已经提交的 insert ,...

weixin_39962889的博客 204

分布式篇-B 分布式事务(学习总结)

答:事务的定义:事务是最小的数据处理单元,主要作用是保证数据库数据状态的一致性。事物的特性:ACID特性,指的是:A原子性:每个事务都是最小的事务处理单元,不可再分B一致性:事务提交和回滚前后数据库数据状态是一致的C隔离性:事务和事务之间相互独立,互不干涉D持久性:事务提交和回滚后,对数据库数据造成的影响是持久的。

田宝宝的博客 1690

09.分布式事务解决方案之lcn模式原理

09.分布式事务解决方案之lcn模式原理

陌陌龙的博客 1113

分布式事务选型及对比

分布式事务产生的条件 说到分布式事务,我们先来看看分布式事务的产生条件 这里我们举一个栗子: 当用户进行下单以后,会去调用派单服务进行派单,即向派单服务数据库中插入一条派单业务。 派单成功之后,订单服务在执行后面的业务代码中,报错了 此时订单服务事务回滚,而派单服务的事务已经提交了,导致了数据的不一致。 此时,小伙伴可能有疑问:派单服务报错呢?会不会也产生分布式事务问题? 实际上如果派单服务报错,会将执行结果返回给订单服务,订单服务执行相应的处理即可,并不会发生分布式事务。 什么是分布式事务?

jianchileiliang的博客 543

分布式事务--TCC的中间件--选型/对比

本文介绍分布式事务的TCC的一些中间件。

IT利刃出鞘的博客 4065

分布式事务分享一点相关经验

在传统的单体应用(包含单体应用的多份部署,比如使用反向代理等方式),业务code集中在一起,可以轻松保证事务的ACID;然而到了现在的微服务时代或者服务网格时代,单体应用被按照业务进行水平拆分,以前在一个事务内的业务代码被分散到了多个进程之中,随之带来了令人烦恼的分布式事务问题,如何保证进程之间事务完整性成为了微服务带来的难题,此篇将分享之前对分布式事务的研究,包含对几个业界知名框架的研究。 知名的CAP理论 CAP理论:指的是在一个分布式系统中, Consistency(一致性)、 Availabili

u011539836的专栏 917

分布式事务(一)理论篇

摘要说明: 简单的说事务的本质就是将多个非原子性的操作构造成一个“原子性”的执行单元的机制;即多个原子操作要么全部成功,要么全部失败即回滚; 但往往一个业务会因为多种原因需要划分成多个这样的节点,通常的原因有 业务划分产生多个节点如微服务; 由于多个数据源产生多个节点; 简单的说分布式事务需要保证这些小节点要么全部成功,要么全部失败。本质上来说,分布...

叶落自飘零的博客 530

分布式事务

原子性确保事务中的操作要么全部完成,要么全部不进行,事务是一个不可分割的工作单位。如果事务中的一部分操作提交成功,其余的操作失败,则事务会回滚到事务开始之前的状态,好像什么操作都没有执行过一样。:一致性确保事务将数据库从一个一致的状态转换到另一个一致的状态。在事务开始之前和事务完成之后,数据库的完整性约束没有被破坏,它保证了数据库的数据完整性和业务规则的一致性。:数据库系统提供一定程度的事务隔离性,以控制事务的操作之间的可见性,确保事务并发执行的结果能够与事务串行执行的结果相一致。

Mamba Out 3085

分布式事务解决方案

1.0 ACID是传统数据库常用的设计理念,追求强一致性模型。 关系数据库的ACID模型拥有 高一致性 + 可用性 很难进行分区: Atomicity原子性:一个事务中所有操作都必须全部完成,要么全部不完成。 Consistency一致性. 在事务开始或结束时,数据库应该在一致状态。 Isolation隔离层. 事务将假定只有它自己在操作数据库,彼此不知晓。 Durability. 持久性 一旦事务完成,就不能返回。 2.0 CAP理论为: 一个分布式系统最多只能同时满足(分布式一般是满足AP) Consi

c843964653的博客 1052

《SpringCloud Alibaba 微服务架构》专题(十九)-分布式事务解决方案

1.分布式事务概念 1.1.问题引入 前阵子从支付宝转账1万块钱到余额宝,这是日常生活的一件普通小事,但作为互联网研发人员的职业病,我就思考支付宝扣除1万之后,如果系统挂掉怎么办,这时余额宝账户并没有增加1万,数据就会出现不一致状况了。 上述场景在各个类型的系统中都能找到相似影子,比如在电商系统中,当有用户下单后,除了在订单表插入一条记录外,对应商品表的这个商品数量必须减1吧...

专业的计算机毕业设计指南 1095
上一篇: spring cloud gateway源码解析
下一篇: nacos和eureka注册中心对比 and CAP定律理解
辛一一
博客等级 码龄10年 125粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值