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

RabbitMQ 应用 - SpringBoot

以下介绍的是基于 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.lryc.cn/news/2392463.html

相关文章:

  • 基于递归思想的系统架构图自动化生成实践
  • OpenGL Chan视频学习-9 Index Buffers inOpenGL
  • 《基于AIGC的智能化多栈开发新模式》研究报告重磅发布! ——AI重塑软件工程,多栈开发引领未来
  • 热门大型语言模型(LLM)应用开发框架
  • Nginx安全防护与HTTPS部署实战
  • JAVA重症监护系统源码 ICU重症监护系统源码 智慧医院重症监护系统源码
  • 静态资源js,css免费CDN服务比较
  • 组合型回溯+剪枝
  • python:机器学习(KNN算法)
  • 【笔记】2025 年 Windows 系统下 abu 量化交易库部署与适配指南
  • 小程序 - 视图与逻辑
  • ChatGPT Plus/Pro 订阅教程(支持支付宝)
  • [蓝帽杯 2022 初赛]网站取证_2
  • vue3+Pinia+element-plus 后台管理系统项目实战记录
  • 安装 Node.js 和配置 cnpm 镜像源
  • MacOS内存管理-删除冗余系统数据System Data
  • 电脑开机后长时间黑屏,桌面图标和任务栏很久才会出现,但是可通过任务管理器打开应用程序,如何解决
  • 行为型:中介者模式
  • 光谱相机在生态修复监测中的应用
  • 吉林大学操作系统上机实验五(磁盘引臂调度算法(scan算法)实现)
  • 【深度学习-pytorch篇】4. 正则化方法(Regularization Techniques)
  • ESP8266+STM32 AT驱动程序,心知天气API 记录时间: 2025年5月26日13:24:11
  • WPF【11_5】WPF实战-重构与美化(MVVM 实战)
  • ⭐️⭐️⭐️ 模拟题及答案 ⭐️⭐️⭐️ 大模型Clouder认证:RAG应用构建及优化
  • kali系统的安装及配置
  • CSS--background-repeat详解
  • Redis的大Key问题如何解决?
  • 影楼精修-AI追色算法解析
  • node入门:安装和npm使用
  • ‘js@https://registry.npmmirror.com/JS/-/JS-0.1.0.tgz‘ is not in this registry