当前位置: 首页 > article >正文

MQ基础(异步通信)

文章目录day06-MQ基础 学习总结一、同步调用 vs 异步调用1. 同步调用OpenFeign2. 异步调用MQ二、RabbitMQ基础1. 核心概念2. 安装与端口3. 数据隔离三、SpringAMQP1. 功能介绍2. 工作模式2.1 简单队列2.2 Work Queue任务模型2.3 Fanout广播2.4 Direct路由2.5 Topic通配符3. 声明队列和交换机3.1 基于Bean3.2 基于注解推荐4. 消息转换器四、业务改造案例支付成功异步通知五、今日核心知识点MQ基础 校招面试常问问题总结一、基础概念类1. 同步调用和异步调用的区别2. 什么场景用异步调用3. 消息队列有什么好处二、RabbitMQ基础类4. RabbitMQ的核心概念有哪些5. 交换机的类型有哪些区别是什么6. Virtual Host的作用三、SpringAMQP使用类7. 怎么用Spring发送消息8. 怎么用Spring接收消息9. Work Queue模式中prefetch的作用10. 怎么声明队列和交换机四、消息转换器类11. 消息序列化方式有哪些12. 怎么改成JSON五、项目实践类13. 你们项目哪里用了MQ举例说明14. 改造同步调用为异步的步骤15. MQ消息丢了怎么办六、常见坑点16. 消息没被消费17. 消息重复消费18. 消费者处理失败七、校招微服务考察重点排序MQ篇day06-MQ基础 学习总结一、同步调用 vs 异步调用1. 同步调用OpenFeign特点调用方阻塞等待实时得到响应类比视频通话缺点拓展性差新增需求需要修改原代码性能下降总耗时 各服务耗时之和级联失败一个服务故障导致整个事务回滚2. 异步调用MQ特点调用方发送消息后立即返回不等待响应类比微信聊天优点耦合度低性能更好拓展性强故障隔离缺点依赖Broker可靠性、架构复杂二、RabbitMQ基础1. 核心概念概念作用Publisher消息生产者发送消息的一方Consumer消息消费者接收处理消息的一方Queue队列存储消息Exchange交换机负责消息路由Virtual Host虚拟主机数据隔离2. 安装与端口15672管理控制台5672消息收发接口3. 数据隔离创建独立用户创建独立Virtual Host不同项目数据隔离三、SpringAMQP1. 功能介绍自动声明队列、交换机、绑定关系基于注解的监听器模式封装RabbitTemplate发送消息2. 工作模式2.1 简单队列生产者直接发送到队列消费者监听队列适用测试场景2.2 Work Queue任务模型多个消费者绑定同一队列一条消息只被一个消费者处理能者多劳配置prefetch1按处理能力分配消息2.3 Fanout广播交换机将消息发给所有绑定队列适用群发消息2.4 Direct路由基于RoutingKey精确匹配队列绑定指定key适用定向消息2.5 Topic通配符RoutingKey用.分隔单词通配符#0或多个词、*1个词适用模糊匹配路由3. 声明队列和交换机3.1 基于Bean手动创建Queue、Exchange、Binding3.2 基于注解推荐RabbitListener(bindingsQueueBinding(valueQueue(namequeue.name),exchangeExchange(nameexchange.name,typeExchangeTypes.DIRECT),keyrouting.key))4. 消息转换器默认JDK序列化体积大、可读性差、有漏洞推荐JSON转换器引入Jackson依赖配置MessageConverter为Jackson2JsonMessageConverter四、业务改造案例支付成功异步通知改造前支付服务同步调用交易服务更新订单状态改造后支付服务发送消息到pay.direct交换机routingKeypay.success交易服务监听trade.pay.success.queue队列收到消息后更新订单状态五、今日核心知识点模块技术点作用概念同步/异步调用理解两种通信方式的区别MQRabbitMQ消息中间件MQExchange类型Fanout、Direct、TopicSpringAMQPRabbitTemplate发送消息SpringAMQPRabbitListener接收消息SpringAMQP消息转换器JSON序列化实践支付异步通知改造同步调用为异步MQ基础 校招面试常问问题总结一、基础概念类1. 同步调用和异步调用的区别问说说同步通信和异步通信的区别各自优缺点答同步阻塞等待实时响应但性能差、耦合高异步非阻塞性能好、解耦但架构复杂、有延迟2. 什么场景用异步调用问你们项目中哪些业务用了异步答支付成功后通知交易服务、下单后清理购物车、短信通知等不需要实时响应的场景3. 消息队列有什么好处问为什么要引入MQ答解耦、异步提速、削峰填谷、故障隔离二、RabbitMQ基础类4. RabbitMQ的核心概念有哪些问RabbitMQ中的Queue、Exchange、Binding是什么答Queue存储消息Exchange路由消息Binding绑定队列到交换机指定路由规则5. 交换机的类型有哪些区别是什么问Fanout、Direct、Topic三种交换机有什么区别答Fanout广播给所有队列Direct精确匹配RoutingKeyTopic通配符匹配RoutingKey6. Virtual Host的作用问RabbitMQ中Virtual Host是做什么的答数据隔离不同项目用不同vhost避免相互干扰三、SpringAMQP使用类7. 怎么用Spring发送消息问SpringAMQP中如何发送消息答注入RabbitTemplate调用convertAndSend方法8. 怎么用Spring接收消息问如何监听队列消费消息答RabbitListener注解指定队列名称9. Work Queue模式中prefetch的作用问prefetch1是什么意思答每次只取一条消息处理完才能取下一条实现能者多劳10. 怎么声明队列和交换机问你们项目中队列和交换机是怎么创建的答两种方式Bean手动创建或RabbitListener注解声明推荐四、消息转换器类11. 消息序列化方式有哪些问SpringAMQP默认用什么序列化有什么问题答默认JDK序列化问题体积大、可读性差、有安全漏洞12. 怎么改成JSON问如何配置JSON消息转换器答配置Jackson2JsonMessageConverter为Bean五、项目实践类13. 你们项目哪里用了MQ举例说明问讲讲你们项目中的异步调用场景答支付成功后发送消息交易服务监听更新订单状态下单后发送消息购物车服务监听清理购物车14. 改造同步调用为异步的步骤问怎么把一个同步接口改成异步答定义交换机、队列、绑定关系生产者发送消息替代Feign调用消费者监听队列处理业务15. MQ消息丢了怎么办问如果MQ消息丢失怎么处理答后续课程会学消息可靠性持久化、确认机制、重试六、常见坑点16. 消息没被消费注意检查队列是否绑定到交换机、routingKey是否匹配、消费者是否监听正确队列17. 消息重复消费注意需要做幂等性处理如业务id去重18. 消费者处理失败注意默认会重试需配置重试机制或死信队列后续学习七、校招微服务考察重点排序MQ篇同步/异步概念对比⭐⭐⭐⭐⭐MQ的作用和好处⭐⭐⭐⭐⭐RabbitMQ核心概念⭐⭐⭐⭐交换机类型及区别⭐⭐⭐⭐SpringAMQP基本使用⭐⭐⭐⭐Work Queue模式⭐⭐⭐消息转换器⭐⭐⭐总结校招面试MQ核心考察概念理解和使用场景。你能把今天学的什么时候用异步解耦、提速MQ怎么用发消息、收消息交换机怎么选广播、路由、通配符讲清楚逻辑再结合支付异步通知的改造案例完全足够

相关文章:

MQ基础(异步通信)

文章目录day06-MQ基础 学习总结一、同步调用 vs 异步调用1. 同步调用(OpenFeign)2. 异步调用(MQ)二、RabbitMQ基础1. 核心概念2. 安装与端口3. 数据隔离三、SpringAMQP1. 功能介绍2. 工作模式2.1 简单队列2.2 Work Queue&#xff…...

Intel vGPU技术GVT-g与kvmgt实现分析和实践

Intel GVT-g & KVMGT Intel GVT-g是Intel图形虚拟化技术(Intel Graphics Virtualization Technology-graphics)的缩写,它是一种硬件辅助的GPU虚拟化解决方案,允许将一个Intel集成显卡(Integrated Graphics Processor, IGP)虚拟化为多个虚拟GPU(vGPU…...

HeBA Heterogeneous Bottleneck Adapters for Robust Vision-Language Models

HeBA: Heterogeneous Bottleneck Adapters for Robust Vision-Language Models Authors: Md Jahidul Islam Deep-Dive Summary: HeBA: 用于鲁棒视觉语言模型的异构瓶颈适配器 (Heterogeneous Bottleneck Adapters) 摘要 将 CLIP 等大规模视觉语言模型(VLMs&…...

协程学习笔记1

一、CPU密集型任务Test fun test Cpu Task()runBlocking{val startTime System.currentTimeMillis()val joblaunch(Dispatchers.Default){var nextTimestartTimevar i0while (i<5){if(System.currentTimeMillis()>nextTime){println("job:Im sleeping ${i}")ne…...

团队协作效率遭遇瓶颈?这 1 个开放式网盘生态,救活了 10 万+ 企业的文档流(含竞品实测)

在 2026 年的企业级 SaaS 市场&#xff0c;很多团队管理者陷入了一个怪圈&#xff1a;买了一堆功能大而全的“全家桶”网盘&#xff0c;结果员工依然习惯用微信传文件&#xff0c;文档躺在云端变成死数据。 为什么&#xff1f;因为真正的“生态”不是强迫用户在网盘里用简陋的…...

结构建模与数字孪生破解偏远桥梁监测难题

STAAD与iTwin提供结构建模与数字孪生解决方案&#xff0c;助力实现智能、经济高效的桥梁维护策略优化桥梁检测与维护I-15州际公路纵贯美国南加州与加拿大阿尔伯塔省&#xff0c;全长1400英里&#xff0c;仅有29英里穿过亚利桑那州最西端的莫哈维县&#xff0c;其中有15英里的路…...

Android jetpack LiveData (二) 原理篇

Android jetpack LiveData&#xff08;二&#xff09;原理篇引言源码前置分析核心类源码第一步&#xff0c;定义LiveData对象第二步&#xff0c;观察LiveData数据第三步&#xff1a; 设置LiveData数据到这里我们先总结下黏性数据的步骤&#xff1a;小结引言 上一篇我们学习了L…...

【PCIe 验证每日学习・Day13】DLLP 与 ACK/NAK 重传机制基础验证

大家好&#xff0c;继续我们「PCIe 验证每日学习・30 分钟打卡」系列。今天进入数据链路层核心&#xff1a;DLLP 帧结构、ACK/NAK 应答机制与重传验证。内容严格遵循 PCIe 规范、100% 无错误&#xff0c;讲解通俗、结构清晰、代码可直接复用&#xff0c;风格与前几日完全统一&a…...

Linux 的 cat 命令

Linux 的 cat 命令详解 命令概述 cat&#xff08;concatenate 的缩写&#xff09;是 Linux 系统中最基础且常用的命令之一&#xff0c;主要用于查看文件内容、合并文件以及创建简单文件。该命令属于 GNU coreutils 包的一部分&#xff0c;几乎在所有 Linux 发行版中都默认安装…...

burpsuite详细安装教程及功能讲解

好久不见&#xff0c;各位道友 目录 好久不见&#xff0c;各位道友 Brp Suite 介绍 正常情况下&#xff08;不使用Burp Suite&#xff09;&#xff0c;客户端与服务器的交互过程如下&#xff1a; 当加入Burp Suite时&#xff0c;客户端与服务器的交互过程如下&#xff1a;…...

春日桌搭新首选!ROG魔霸9 Mini:3L 迷你机身,塞下锐龙 9+RTX5070

三月春意渐浓&#xff0c;很多人都开始给自己的桌面焕新升级&#xff0c;而一款体积小巧、性能够强的主机&#xff0c;绝对是桌搭升级的核心。最近 ROG 推出的魔霸 9 Mini 电竞迷你主机&#xff0c;就精准命中了玩家与办公人群的核心需求 —— 仅 3L 的超小体积&#xff0c;却塞…...

Qt导航栏组件A03:VS Code 风格的图标侧栏

目录 一、引言 二、最终效果预览 三、核心实现原理 3.1 布局结构设计 3.2 核心技术点 四、代码实现详解 4.1 项目结构 4.2 导航组件的核心代码 4.3 样式表设计 五、总结 5.1 核心要点回顾 5.2 学习建议 源码下载 系列编号:A-03 导航风格:只有图标的侧栏 适用场景:IDE、编辑器…...

计算机毕业设计源码:Python贝壳租房数据可视化与智能推荐系统 Scrapy爬虫 可视化 推荐系统 大数据 数据分析 大模型 房源 房子(建议收藏)✅

博主介绍&#xff1a;✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业项目实战6年之久&#xff0c;选择我们就是选择放心、选择安心毕业✌ > &#x1f345;想要获取完整文章或者源码&#xff0c;或者代做&#xff0c;拉到文章底部即可与…...

深度探索Fluent中的电弧、激光与熔滴一体化模拟

Fluent电弧&#xff0c;激光&#xff0c;熔滴一体模拟。 UDF包括高斯旋转体热源、双椭球热源&#xff08;未使用&#xff09;、VOF梯度计算、反冲压力、磁场力、表面张力&#xff0c;以及熔滴过渡所需的熔滴速度场、熔滴温度场和熔滴VOF。初识激光熔化沉积&#xff1a;一场材料…...

电-气-热综合能源系统节点能价计算方法研究

基本文献复现-计及碳排放成本的电_气_热综合能源系统节点能价计算方法研究 真正做到了电热气潮流耦合&#xff0c;很适合综合能源系统建模的初学者&#xff0c;配合复现论文。 运行程序HeatGasPowerCombination即可。 每个系统模型都有专门的文档讲解&#xff0c;程序注释齐全。…...

香草纪元开服教程:使用云鸢联机平台快速搭建“食旅纪行”服务器(高配推荐版)

你是否喜欢原版风格&#xff0c;热爱收集&#xff0c;渴望在minecraft中休闲养老&#xff1f;你是否喜欢眼前一亮的各种新奇模组&#xff0c;热爱探索&#xff0c;打造神器征战各种boss&#xff1f;你是否在找一个农夫乐事大型养老包&#xff0c;想在mc里做个美食家&#xff1f…...

增程式电动汽车自适应ECMS能量管理策略:基于工况的Matlab实现方案

增程式电动汽车基于工况的自适应ECMS能量管理策略&#xff08;matlab的m程序&#xff09; 最近试驾某品牌增程式电动车时&#xff0c;发现一个有趣现象&#xff1a;堵车时增程器几乎不启动&#xff0c;而上了高速却像开了狂暴模式。这背后的能量管理策略有点东西&#xff0c;今…...

Comsol锂枝晶模型:锂枝晶生长与锂离子浓度、电势分布的模拟

comsol锂枝晶模型 Comsol 锂枝晶生长模型&#xff0c;锂枝晶生长&#xff0c;锂离子浓度分布&#xff0c;电势分布 此链接是随机形核生长锂电池实验室里最让人头疼的玩意就是锂枝晶。这货像金属胡须一样野蛮生长&#xff0c;动不动就刺穿隔膜搞短路。去年用COMSOL建锂枝晶模型时…...

基于改进蛇优化算法(GOSO/ISO)优化极限梯度提升树的时间序列预测

基于改进蛇优化算法(GOSO/ISO)优化极限梯度提升树的时间序列预测(GOSO/ISO-XGBoost) 蛇优化算法SO是2022年提出的新算法&#xff0c;性能优异&#xff0c;目前应用较少&#xff0c;改进蛇优化算法GOSO/ISO应用更少&#xff0c;适合PAPER 改进点1为在初始化种群引入混沌映射&…...

大厂ZigBee射频芯片CC2430反向电路探索

大厂ZigBee射频芯片CC2430反向电路 学习方法是&#xff1a;可以直接查看里面的电路结构&#xff0c;还有管子的宽长比参数等。 拿到原理图之后需要自己换成自己所持有的PDK就可以跑仿真了&#xff0c;国内大部分公司都是这样设计芯片产品的&#xff0c;参考价值非常大&#xff…...

Matlab实现频率切片小波变换(FSWT)绘制时频图

Matlab进行频率切片小波变换(FSWT)源代码&#xff0c;将一维信号生成时频图。 输入信号可以是任何一维信号&#xff0c;心电信号、脑电信号、地震波形、电流电压数据等。 相比连续小波变换(CWT)&#xff0c;频率切片小波变换(Frequency Slice Wavelet Transform,FSWT)是一种更具…...

Prompt工程深度揭秘

&#x1f3af; Prompt工程深度揭秘&#xff1a;AI的"说明书"是如何进化的 从简单指令到复杂工程&#xff1a;理解Prompt如何让AI变得"听话" 你是不是好奇&#xff0c;这些这么多的新东西&#xff0c;他们在使用的时候不都是一堆提示词嘛&#xff0c;那分裂…...

飞轮储能系统建模详解与MATLAB仿真实践(含永磁同步电机驱动模型)含多种模型与建模仿真指南

飞轮储能系统的建模与MATLAB仿真 飞轮储能系统的建模与MATLAB仿真&#xff08;永磁同步电机作为飞轮驱动电机&#xff09;含详细建模文件 内含两个飞轮储能模型&#xff1a;模型一的机侧网侧分开运行&#xff0c;附54页建模仿真说明&#xff1b;模型二的机侧网侧同步运行——内…...

基于全阶磁链观测器的异步电机矢量控制

基于全阶磁链观测器的异步电机矢量控制全阶磁链观测器的主要思想是将异步电机模型作为参考&#xff0c;把状态估计的方程作为可调节部分。 这两部分具有相同物理意义的输出量&#xff0c;利用两个部分的输出量误差再经过反馈校正通道对状态观测值进行修正&#xff0c;使观测值快…...

高级特性之dubbo超时机制及集群容错机制

当服务消费者要进行消费的时候&#xff0c;这个时候它可能就开启一个线程去调用服务提供者的具体实现&#xff0c;等他返回相应的结果&#xff0c;这个时候由于网络的问题或者服务端并不可靠&#xff0c;它会在这阻塞很长的一段时间。如果这个服务一直有人在调用那么就会开一堆…...

西门子S7-1200 PLC工业污水处理系统:基于博途V13sp1的WinCC画面组态与仿真报告

西门子工业污水处理系统&#xff0c;plc污水处理系统&#xff0c;基于plc的污水处理系统&#xff0c;系统采用s7-1200PLC设计&#xff0c;博途wincc画面组态。 包括plc触摸屏组态画面及仿真&#xff0c;报告等 博途V13sp1编程&#xff0c;V13sp1以上版本可以打开工业污水处理系…...

事件触发控制代码及其对应参考文献

事件触发控制代码对应参考文献 1.2023IEEE TRANS 顶刊基于事件触发的深度强化学习自动驾驶决策&#xff08;CCF-A&#xff09; 2.多智能体分布式系统的事件触发控制 3.基于观测器的非理想线性多智能体事件触发的跟踪一致性 4.非线性不确定扰动多智能体系统固定时间事件触发一致…...

实测对比后!千笔AI,开源免费降重首选

在AI技术迅速发展的今天&#xff0c;越来越多的学生和研究人员开始依赖AI工具辅助论文写作。然而&#xff0c;随着知网、维普、万方等查重系统不断升级算法&#xff0c;以及Turnitin对AIGC&#xff08;人工智能生成内容&#xff09;的识别愈发严格&#xff0c;AI率超标问题已成…...

直驱风机Simulink仿真模型与永磁直驱式风力发电系统整体仿真:380V与690V双电压仿真...

直驱风机simulink仿真模型&#xff0c;永磁直驱式风力发电系统 matlab/simulink整体仿真&#xff0c;有380V和690V两个仿真&#xff0c;波形如图&#xff0c;现货有2018 和 2021 两个版本&#xff0c;可导出2015b-2022版本&#xff0c;有模型说明和文献直驱风机在风电场的应用这…...

Canoe-Autosar网络管理自动化测试脚本及Capl源码:全套、可直接使用修改项目配置

Canoe-Autosar网络管理自动化测试脚本 Capl源码&#xff0c;全套&#xff0c;修改项目配置可以直接使用。 1.启动程序 2.加载配置文件 3.选择帧类型(标准帧或扩展帧) 4.修改配置文件&#xff0c;自动弹出配置文件窗口 5.选择测试用例 6.点击运行 7.测试完成打印报告并记录对应…...