谷粒商城实战(024 业务-订单模块-分布式事务1)

Java项目《谷粒商城》架构师级Java项目实战,对标阿里P6-P7,全网最强

总时长 104:45:00 共408P

此文章包含第284p-第p290的内容


简介

在这里插入图片描述

在这里插入图片描述

模拟积分服务出异常,前方的锁库存事务未回滚,这时候就需要分布式事务
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本地事务

在这里插入图片描述
在这里插入图片描述

事务的隔离级别

在这里插入图片描述

在这里插入图片描述
spring 调整隔离级别 使用@Transactional的isolation属性
在这里插入图片描述
在这里插入图片描述

事务的传播行为

在这里插入图片描述
在这里插入图片描述
下图的情况 报错后 a和b一起回滚 c因为开了一个新事务,所以不回滚
在这里插入图片描述
使用required了,它的其他配置就无用,就是使用他的共用的那个事务的配置
在这里插入图片描述
在这里插入图片描述
坑!!!切记 这里的abc三个方法都在一个类里面 这样会导致跳过代理 导致b和c的@Transactional失效,修改的话 使用xxxService.b()这样可以,或者使用下面的方法
在这里插入图片描述
在这里插入图片描述
解决方法:

  1. 引入aop场景
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述
使用代理对象来调用
在这里插入图片描述

分布式事务

在这里插入图片描述
在这里插入图片描述

CAP定理和BASE定理

在这里插入图片描述

在这里插入图片描述
这三者无法同时实现 只能是cp ap 或 ac(基本无法实现ac)
在这里插入图片描述

使用算法保持一致性 cp

在这里插入图片描述
动画
在这里插入图片描述
在这里插入图片描述
发生错误后没提交的数据都进行回滚 然后复制新领导的命令日志进行操作

一般我们都使用a和p
在这里插入图片描述

base理论

在这里插入图片描述

最终一致性

在这里插入图片描述
在这里插入图片描述
例如 这里库存已经扣了,但是订单和积分已经回滚了 过一段时间发现没有这个订单(或 生成订单 但订单状态已关闭) 这样的话再把库存加回去

分布式事务的几种方案
2pc模式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

tcc事务补偿方案(TCC补偿 这个阿里在用)

相当于自己写回滚逻辑(如库存加了2个,进到cancel逻辑就要减2) 缺点:侵入式太强
在这里插入图片描述
在这里插入图片描述

最大努力通知型方法

在这里插入图片描述
如支付宝支付成功后 会一直发给订单模块 告诉他已经支付成功了,直到订单模块执行完业务,并且返回通知(知道了,我已经执行完了)给支付宝,支付宝才停止发送通知
在这里插入图片描述

可靠消息+最终一致性方案

在这里插入图片描述

seata

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

这个表相当于一个操作的日志的暂存器(改之前先记录一下) 将事务执行之前的数据存在里面,如果事务失败了 则回滚回去(魔改数据库)

在这里插入图片描述

每个数据库都加了这个回滚日志表

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

加粗样式

加粗样式

seata示例

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

不想找bug就用老师的版本的,新版本完全不一样了

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

seata1.4.2可以在配置文件里配置,以 seata 开头,下面就会有配置信息的提示

在这里插入图片描述

springboot2.0以下可以用
在这里插入图片描述
注意:在Seata0.9版本以后,提供了DataSource默认代理的功能,并且默认是开启的,不用再手动的去把DataSource放入到DataSourceProxy中了

在这里插入图片描述

在这里插入图片描述
seata依赖引到common里面的 其他模块记得排除不然启动不了
seata无法使用在高并发场景,因为加了很多锁,相当于把并发变成了串口化了,所以这里我们在高并发场景不使用seata,使用最大努力通知型方法和可靠消息+最终一致性方案,下个视频继续


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/628446.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux环境部署与命令技巧

Linux环境部署与命令技巧 安装Java 首先确保已经安装了Java。通过运行以下命令检查Java是否已安装: java -version # 查看Java版本如果未安装Java,可以使用以下命令安装OpenJDK: sudo yum install java-11-openjdk # 安装OpenJDK 11创建一个…

华为昇腾310B1平台视频解码失败[ERROR] Send frame to vdec failed, errorno:507018

目录 1 [ERROR] Send frame to vdec failed, errorno:507018 2 bug解决尝试1 3 bug解决尝试2 4 最终解决方法 参考文献: 1 [ERROR] Send frame to vdec failed, errorno:507018 某项目中的代码运行报错 [ERROR] Send frame to vdec failed, errorno:507018 Ac…

Python专题:十四、文件操作(1)

现代计算机中,我们使用文件系统来保存数据,使用目录结构组织文件数据的系统 相对路径 guess_number.py 文件扩展名:Window系统中,通过扩展名来识别文件 readlines()函数,读取整个文件并返回一个列表 Python程序读取…

ue引擎游戏开发笔记(38)——实现敌人接收攻击伤害,并作出反应

1.需求分析: 现在已经显示造成实际伤害,但敌人对实际伤害并未产生反馈,例如还击,或者死亡倒地等等,实现敌人对于受击的反馈。 2.操作实现: 1.思路:在动画蓝图中添加死亡动画,并通过…

Google I/O盛会省流全内容总结:AI模型家族革新与前沿技术应用的广阔前景

昨晚的Google I/O 发布会主要聚焦于AI模型和应用的更新与扩展,特别在生成模型领域取得了显著进步。以下是模型层面内容的简要总结: DeepMind官网链接:https://deepmind.google/ Google Veo官方:https://deepmind.google/technol…

Linux|基础IO

Linux|基础IO 回顾c语言的文件操作提炼对文件的理解系统调用初始open函数返回值fd为什么我们向fd一个整数写就写入文件了呢?怎么理解读写操作总结open函数有哪些功能怎么理解往硬件(显示器,键盘)中读写数据如何理解FILE*访问文件 …

ChatGPT未来可能应用于iPhone?

苹果接即将与OpenAI达成协议 ChatGPT未来应用于iPhone 前言 就在5月11日,苹果公司正与OpenAI进行深入讨论,计划在其最新的iOS操作系统中整合OpenAI的先进技术。这一举措是苹果公司在为其产品线融入更先进的人工智能功能所做努力的一部分。 目前情况双方…

谷粒商城实战(025 业务-订单模块-分布式事务2)

Java项目《谷粒商城》架构师级Java项目实战,对标阿里P6-P7,全网最强 总时长 104:45:00 共408P 此文章包含第291p-第p293的内容 简介 seata无法使用在高并发场景,因为加了很多锁,相当于把并发变成了串口化了,所以这里…

C++ 并发编程指南(11)原子操作 | 11.6、计算机内存结构

文章目录 一、计算机内存结构1、内存的基本组成2、内存的类型3、内存的结构层次4、CPU架构5、局部性原理6、总结 前言 在探讨计算机的运行效率和数据处理能力时,内存结构无疑是一个至关重要的部分。内存,作为计算机系统中的关键组件,承担着存…

WPF之DataGird应用

1,DataGrid相关属性 GridLinesVisibility:DataGrid网格线是否显示或者显示的方式。HorizontalGridLinesBrush:水平网格线画刷。VerticalGridLinesBrush:垂直网格线画刷。HorizontalScrollBarVisibility:水平滚动条可见…

怎么扫码查看文件内容?多文件一键生成二维码的方法

现在日常生活中经常会看到很多的二维码中包含文件,扫码后在手机上预览文件内容或者下载文件,有很多的应用场景下被使用。通过扫描二维码的方式实现文件的传递,与传统方式相比更加方便快捷。 这种方式能够提升获取文件的便捷性,而…

【竞技宝】英超:曼城击败热刺,赢西汉姆联就夺冠

曼城在英超补赛中跟热刺相遇,这场比赛对于双方来说都必须赢。曼城要是拿不下热刺,联赛夺冠形势就不容乐观。热刺则是需要击败曼城,保留拿到下赛季欧冠的一线希望。所以,热刺和曼城开场就全力以赴。上半场热刺和曼城门将都做出精彩扑救,比分维持在0比0。下半场曼城金靴哈兰德发威…

KerberosSDR的EMI探测

我最近一直在解决无线电罗盘的EMI问题。顺便也想对比一下KerberosSDR。所以我又把它拆开测试了一下。 根据我的经验,容易产生EMI辐射的是: 1.用来共享的时钟晶振(信号需要足够强,因为要给多个通道用) 2.rtl2832u的开…

智能门锁的贴心管家:内置32.768kHz晶振

随着社会、科技、文化的进步,机械锁的安全性已经越来越不能满足百姓的需求,这时候智能锁应运而生。它比传统的机械锁安全性高,更具有优势。电子智能锁(包括密码锁、卡锁、指纹锁、虹膜锁等)作为新一代识别技术优势愈来愈明显,将逐…

网站DDoS攻击应对策略:全面防护与恢复指南

随着互联网的发展,网络安全问题日益凸显,其中DDoS(分布式拒绝服务)攻击成为了网站安全的主要威胁之一。当网站遭受DDoS攻击时,可能会面临服务中断、性能下降、数据泄露等严重后果。因此,了解并掌握DDoS攻击…

SAP BSEG VS ACDOCA 差异

温习一下 ACDOCA VS BSEG matinal:S4 HANA 详解ACDOCA与BSEG的区别都在这了_sap acdoca-CSDN博客

(Java面试题——基础版)JVM、JRE和JDK的关系

JVM Java Virtual Machine是Java虚拟机 ,Java程序需要运行在虚拟机上 ,不同的平台有自己的虚拟机 ,因此Java语言可以 实现跨平台。JVM 负责将 Java 字节码(即编译后的 .class 文件)翻译成特定平台上的机器码&#xff0…

离子风机:静电防护的得力助手

在现代工业生产中,静电问题一直是困扰许多企业的难题。尤其是在电子生产线、维修台等敏感区域,静电的存在可能对产品质量造成严重影响,甚至导致设备损坏。为了解决这一问题,离子风机作为静电防护的得力助手,正逐渐受到…

VLAN 综合实验

一、实验拓扑 二、实验需求 1.PC1和PC3所在接口为access,属于vlan2; PC2/4/5/6处于同一网段,其中PC2可以访问PC4/5/6; 2.PC5不能访问PC6; 3.PC1/3与PC2/4/5/6不在同一网段; 4.所有PC通过DHCP获取IP地址,且PC1/3可以…

陪诊服务运用预约小程序的效果是什么

在中高型城市里,陪诊师近些年也很有热度,已经衍生成为一个新的小众行业,不同医院/不同科目等其它情况针对不同群体往往很难完善,比如部分老年人腿脚不便、不认识字、外地语言难以沟通等,陪诊师的作用就尤为凸显. 对相…