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

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

总时长 104:45:00 共408P

此文章包含第291p-第p293的内容


简介

seata无法使用在高并发场景,因为加了很多锁,相当于把并发变成了串口化了,所以这里我们在高并发场景不使用seata,使用最大努力通知型方法和可靠消息+最终一致性方案
在这里插入图片描述

在这里插入图片描述

这里使用消息队列来实现分布式事务(可靠消息+最终一致性方案)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

最终一致性:几十分钟甚至一天解锁都可以的
在这里插入图片描述
在这里插入图片描述

使用rabbitmq的延时队列功能进行操作

在这里插入图片描述

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

使用mq的目的有: 解耦,削峰,提供并发等等

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

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

mq使用的是惰性检查机制,如果第一条消息是5分钟 5分钟之后才会来拿第一条消息,后面1分钟3分钟的都被挡上了,所以不要给消息加过期时间 使用第一种给队列加过期时间(即这个队列里的消息都是5分钟过期,这样永远不会挡住后面的,因为是按顺序执行的)
在这里插入图片描述

在这里插入图片描述
消费者监听这个死信队列 然后进行业务操作
在这里插入图片描述

重点:遵循一个服务一个交换机的原则
在这里插入图片描述

使用延迟队列

  1. 引入amqp包
    在这里插入图片描述
    可以使用amqpAdmin来创建交换机等信息,但是太麻烦了,所以我们写一个配置文件
    在这里插入图片描述
    在这里插入图片描述

这里是配置文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
第一个队列在这里插入图片描述
第二个队列
在这里插入图片描述
创建交换机

在这里插入图片描述

创建绑定

在这里插入图片描述
在这里插入图片描述
rabbitmq存在某个队列的话,就不会新建
在这里插入图片描述
如果想修改队列的属性信息,需要删除重建
在这里插入图片描述
在这里插入图片描述
监听消息队列
在这里插入图片描述

在这里插入图片描述
引入延时队列是为了实现分布式事务的第四种方案的,延时队列的作用是实现最终数据一致性的

加粗样式
发送请求
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

发五个
在这里插入图片描述
收五个
在这里插入图片描述
在这里插入图片描述


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

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

相关文章

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可以…

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

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

Java数据类型:基本数据类型

Java是一种强类型语言,定义变量时,必须指定数据类型。 // 变量必须指定数据类型 private String username;初学者不免有个疑问:在实际编写代码的过程中,该如何选择数据类型呢? 回答这个问题之前,先来解决…

电子邮箱怎么注册?电子邮箱注册教程,只需要三步

电子邮箱在我们工作和生活中都是必不可少的沟通工具。电子邮箱怎么注册?电子邮箱的注册步骤是怎么样的?本文将从电子邮箱注册前的准备资料介绍,到具体电子邮箱注册的三个步骤进行详细讲解。 一、电子邮箱注册前的准备 电子邮箱是一个具有唯…

上海市虹桥祥源希尔顿酒店屋顶气膜网球馆

上海市虹桥祥源希尔顿酒店屋顶气膜网球馆为高端酒店设施增添了现代化、环保的运动场所。这座网球馆不仅为酒店住客提供了一个全天候、舒适的运动空间,也为虹桥地区的居民带来了全新的健身体验。作为轻空间(江苏)膜科技有限公司(以…

C语言——栈和队列

文章目录 一、栈1. 栈的概念2. 栈的基本功能3. 栈的实现 二、 队列1. 队列的概念2. 队列的基本功能3. 队列的实现 一、栈 1. 栈的概念 栈是一种特殊的线性表,限定仅在表尾进行插入和删除的线性表。这一端称之为栈顶,另一端称为栈底。 栈又称为后进先出…

运筹说 第114期 | 其他排队模型简介

前面我们已经学习了一些排队模型,对排队系统有了基本认知,本期小编带大家继续来学习其他排队模型的内容。 一、有限源排队模型 顾客源为有限的这类排队问题的主要特征是顾客总数是有限的,如只有m个顾客。每个顾客来到系统中接受服务后仍回到…

【网络安全】【Frida实战案例】某图xx付费功能逆向分析(二)

文章目录 一、目标应用二、环境三、步骤1、重打包2、运行打包后apk3、找到签名信息(1)、查看apk签名信息(2)、hook Android方法获取apk签名信息(3)、转为md5验证 4、hook apk签名信息 四、总结五、相关源码…

uniapp如何打包预约按摩H5?

uniapp如何打包预约按摩H5? 开发工具:HBuilderX 一、如何修改域名配置? 1、修改公众号AppID、页面访问路径 1)gzh_appid: 公众号AppID siteroot: 域名,需更换为你自己的域名以及公众号APPID,域名格式【htt…

pandas style添加表格边框,或是只添加下边框等自定义边框样式设置

添加表格边框 可以使用如下程序添加表格: import dataframe_image as dfi import pandas as pd import numpy as npdf pd.DataFrame(np.random.random(size(10, 5))) df_style df.style.set_properties(**{text-align: center,border-color: black,border-width…