RabbitMQ 应用 - SpringBoot

news2025/6/2 4:57:53

以下介绍的是基于 SpringBoot 的 RabbitMQ 开发介绍

Spring  Spring AMQP

RabbitMQ  RabbitMQ tutorial - "Hello World!" | RabbitMQ

工程搭建步骤:

1.引入依赖

2.编写 yml 配置,配置基本信息

3.编写生产者代码

4.编写消费者代码  定义监听类,使用 @RabbitListener 注解完成队列监听

5.运行观察结果

工作队列模式

常量声明

声明队列

生产者代码

消费者代码(监听类)

调用方法,发送消息(记得注掉监控类,否则消息一经发出,就会被消费)

队列已经创建成功

恢复监控类,重启服务

@RabbitListener 是Spring框架中用于监听RabbitMQ队列的注解, 通过使用这个注解,可以定义一个方法, 以便从RabbitMQ队列中接收消息. 该注解支持多种参数类型,这些参数类型代表了从RabbitMQ接收到的消息和相关信息
以下是⼀些常用的参数类型:
1. String :返回消息的内容
2. Message ( org.springframework.amqp.core.Message ): Spring AMQP的 Message 类,返回原始的消息体以及消息的属性, 如消息ID, 内容, 队列信息等.
3. Channel ( com.rabbitmq.client.Channel ):RabbitMQ的通道对象, 可以用于进行更高级的操作,如手动确认消息

发布订阅模式

在发布/订阅模型中,多了一个Exchange角色(之前的模式中也有 exchange,只不过是没有创建新的交换机,而是使用默认的交换机)
Exchange 常见有三种类型, 分别代表不同的路由规则
a) Fanout:广播,将消息交给所有绑定到交换机的队列(Publish/Subscribe模式)
b) Direct:定向,把消息交给符合指定routing key的队列(Routing模式)
c) Topic:通配符,把消息交给符合routing pattern(路由模式)的队列(Topics模式)

注掉监听类,启动服务,调用接口

两个队列中会存储一个相同的消息

恢复原状,启动服务,调用接口

路由模式

交换机类型为Direct时, 会把消息交给符合指定routing key的队列
队列和交换机的绑定, 不是任意的绑定了, 而是要指定一个RoutingKey(路由key)
消息的发送方在向Exchange发送消息时, 也需要指定消息的RoutingKey
Exchange也不再把消息交给每一个绑定的key, 而是根据消息的RoutingKey进行判断, 只有队列的
RoutingKey 和消息的RoutingKey 完全一致, 才会接收到消息

如果在参数中,没有指明交换机的类型,需要在填写 routingKey 后,添加 noargs()

上述提供的接口可以进行如下修改:  将routingKey 作为参数传递

注掉监听类,开启服务,调用接口后,查看队列里面的消息

恢复监听类,查看返回结果

通配符模式

Topics 和Routing模式的区别是:
1. topics 模式使用的交换机类型为topic(Routing模式使用的交换机类型为direct)
2. topic 类型的交换机在匹配规则上进行了扩展, Binding Key支持通配符匹配(正则匹配)

注掉监听类,开启服务,调用接口发送消息

进入 RabbitMQ 管理界面,产看消息个数和内容

恢复监听类,重新开启服务

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于递归思想的系统架构图自动化生成实践

文章目录 一、核心思想解析二、关键技术实现1. 动态布局算法2. 样式规范集成3. MCP服务封装三、典型应用场景四、最佳实践建议五、扩展方向一、核心思想解析 本系统通过递归算法实现了Markdown层级结构到PPTX架构图的自动转换,其核心设计思想包含两个维度: 数据结构递归:将…

OpenGL Chan视频学习-9 Index Buffers inOpenGL

bilibili视频链接: 【最好的OpenGL教程之一】https://www.bilibili.com/video/BV1MJ411u7Bc?p5&vd_source44b77bde056381262ee55e448b9b1973 函数网站: docs.gl 说明: 1.之后就不再单独整理网站具体函数了,网站直接翻译会…

Nginx安全防护与HTTPS部署实战

目录 前言一. 核心安全配置1. 隐藏版本号2. 限制危险请求方法3. 请求限制(CC攻击防御)(1)使用nginx的limit_req模块限制请求速率(2)压力测试验证 4. 防盗链 二. 高级防护1. 动态黑名单(1&#x…

JAVA重症监护系统源码 ICU重症监护系统源码 智慧医院重症监护系统源码

智慧医院重症监护系统源码 ICU重症监护系统源码 开发语言:JavaVUE ICU护理记录:实现病人数据的自动采集,实时记录监护过程数据。支持主流厂家的监护仪、呼吸机等床旁数字化设备的数据采集。对接检验检查系统,实现自动化录入。喜…

python:机器学习(KNN算法)

本文目录: 一、K-近邻算法思想二、KNN的应用方式( 一)分类流程(二)回归流程 三、API介绍(一)分类预测操作(二)回归预测操作 四、距离度量方法(一)…

【笔记】2025 年 Windows 系统下 abu 量化交易库部署与适配指南

#工作记录 前言 在量化交易的学习探索中,偶然接触到 2017 年开源的 abu 量化交易库,其代码结构和思路对新手理解量化回测、指标分析等基础逻辑有一定参考价值。然而,当尝试在 2025 年的开发环境中部署这个久未更新的项目时,遇到…

小程序 - 视图与逻辑

个人简介 👨‍💻‍个人主页: 魔术师 📖学习方向: 主攻前端方向,正逐渐往全栈发展 🚴个人状态: 研发工程师,现效力于政务服务网事业 🇨🇳人生格言: “心有多大,舞台就有多大。” 📚推荐学习: 🍉Vue2 🍋Vue3 🍓Vue2/3项目实战 🥝Node.js实战 🍒T…

ChatGPT Plus/Pro 订阅教程(支持支付宝)

订阅 ChatGPT Plus GPT-4 最简单,成功率最高的方案 1. 登录 chat.openai.com 依次点击 Login ,输入邮箱和密码 2. 点击升级 Upgrade 登录自己的 OpenAI 帐户后,点击左下角的 Upgrade to Plus,在弹窗中选择 Upgrade plan。 如果…

[蓝帽杯 2022 初赛]网站取证_2

一、找到与数据库有关系的PHP文件 打开内容如下,发现数据库密码是函数my_encrypt()返回的结果。 二、在文件夹encrypt中找到encrypt.php,内容如下,其中mcrypt已不再使用,所以使用php>7版本可能没有执行结果,需要换成较低版本…

安装 Node.js 和配置 cnpm 镜像源

一、安装 Node.js 方式一:官网下载(适合所有系统) 访问 Node.js 官网 推荐选择 LTS(长期支持)版本,点击下载安装包。 根据系统提示一步步完成安装。 方式二:通过包管理器安装(建…

MacOS内存管理-删除冗余系统数据System Data

文章目录 一、问题复现二、解决思路三、解决流程四、附录 一、问题复现 以题主的的 Mac 为例,我们可以看到System Data所占数据高达77.08GB,远远超出系统所占内存 二、解决思路 占据大量空间的是分散在系统中各个位置Cache数据; 其中容量最…

行为型:中介者模式

目录 1、核心思想 2、实现方式 2.1 模式结构 2.2 实现案例 3、优缺点分析 4、适用场景 5、注意事项 1、核心思想 目的:通过引入一个中介对象来封装一组对象之间的交互,解决对象间过度耦合、频繁交互的问题。不管是对象引用维护还是消息的转发&am…

光谱相机在生态修复监测中的应用

光谱相机通过多维光谱数据采集与智能分析技术,在生态修复监测中构建起‌“感知-评估-验证”‌的全周期管理体系,其核心应用方向如下: 一、土壤修复效能量化评估 ‌重金属污染动态监测‌ 通过短波红外(1000-2500nm)波…

吉林大学操作系统上机实验五(磁盘引臂调度算法(scan算法)实现)

本次实验无参考,从头开始实现。 一.实验内容 模拟实现任意一个磁盘引臂调度算法,对磁盘进行移臂操作列出基于该种算法的磁道访问序列,计算平均寻道长度。 二.实验设计 假设磁盘只有一个盘面,并且磁盘是可移动头磁盘。磁盘是可…

ESP8266+STM32 AT驱动程序,心知天气API 记录时间: 2025年5月26日13:24:11

接线为 串口2 接入ESP8266 esp8266.c #include "stm32f10x.h"//8266预处理文件 #include "esp8266.h"//硬件驱动 #include "delay.h" #include "usart.h"//用得到的库 #include <string.h> #include <stdio.h> #include …

⭐️⭐️⭐️ 模拟题及答案 ⭐️⭐️⭐️ 大模型Clouder认证:RAG应用构建及优化

考试注意事项: 一、单选题(21题) 检索增强生成(RAG)的核心技术结合了什么? A. 图像识别与自然语言处理 B. 信息检索与文本生成 C. 语音识别与知识图谱 D. 数据挖掘与机器学习 RAG技术中,“建立索引”步骤不包括以下哪项操作? A. 将文档解析为纯文本 B. 文本片段分割(…

kali系统的安装及配置

1 kali下载 Kali 下载地址&#xff1a;Get Kali | Kali Linux &#xff08;https://www.kali.org/get-kali&#xff09; 下载 kali-linux-2024.4-installer-amd64.iso (http://cdimage.kali.org/kali-2024.4/) 2. 具体安装步骤&#xff1a; 2.1 进入官方地址&#xff0c;点击…

Redis的大Key问题如何解决?

大家好&#xff0c;我是锋哥。今天分享关于【Redis的大Key问题如何解决&#xff1f;】面试题。希望对大家有帮助&#xff1b; Redis的大Key问题如何解决&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Redis中的“大Key”问题是指某个键的值占用了过多…

影楼精修-AI追色算法解析

注意&#xff1a;本文样例图片为了避免侵权&#xff0c;均使用AIGC生成&#xff1b; AI追色是像素蛋糕软件中比较受欢迎的一个功能点&#xff0c;本文将针对AI追色来解析一下大概的技术原理。 功能分析 AI追色实际上可以理解为颜色迁移的一种变体或者叫做升级版&#xff0c;…

node入门:安装和npm使用

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、安装npm命令nvm 前言 因为学习vue接触的&#xff0c;一直以为node是和vue绑定的&#xff0c;还以为vue跑起来必须要node&#xff0c;后续发现并不是。 看…