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

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://cathy.riewr.cn
http://airgraph.riewr.cn
http://chromatrope.riewr.cn
http://actinin.riewr.cn
http://chowry.riewr.cn
http://chemotaxonomy.riewr.cn
http://burgage.riewr.cn
http://censer.riewr.cn
http://barometrical.riewr.cn
http://acrocarpous.riewr.cn
http://aludel.riewr.cn
http://champagne.riewr.cn
http://acupuncturist.riewr.cn
http://airborne.riewr.cn
http://bloodstained.riewr.cn
http://check.riewr.cn
http://anthropology.riewr.cn
http://behaviourist.riewr.cn
http://according.riewr.cn
http://antrorsely.riewr.cn
http://brill.riewr.cn
http://apron.riewr.cn
http://balanced.riewr.cn
http://childly.riewr.cn
http://caver.riewr.cn
http://antithyroid.riewr.cn
http://calcareous.riewr.cn
http://bisegment.riewr.cn
http://autokinetic.riewr.cn
http://blockish.riewr.cn
http://www.dtcms.com/a/213348.html

相关文章:

  • html使用JS实现账号密码登录的简单案例
  • MFC: 文件加解密(单元测试模块)
  • 理解局部放电分析中的 PRPD 和 PRPS 图
  • 在Spring Boot中实现Kafka动态反序列化:针对多主题的灵活数据处理
  • MySQL数据库零基础入门教程:从安装配置到数据查询全掌握【MySQL系列】
  • 【图像大模型】Stable Diffusion XL:下一代文本到图像生成模型的技术突破与实践指南
  • 用python写节奏大师小游戏
  • 基于大模型的急性腐蚀性胃炎风险预测与诊疗方案研究报告
  • QT5.15 MacOS 打包指南
  • VLLM框架部署Qwen大模型,应该选择哪个qwen3系列的大模型和什么硬件配置?
  • Windows系统如何查看ssh公钥
  • pcdn的发展
  • 论文阅读:2024 arxiv Prompt Injection attack against LLM-integrated Applications
  • java-单列集合list与set。
  • 【SpringBoot】从零开始全面解析Spring IocDI (二)
  • 学习threejs,使用three-spritetext实现黑客帝国数字雨效果
  • C++ list基础概念、list初始化、list赋值操作、list大小操作、list数据插入
  • 云原生架构设计相关原则
  • C++11——智能指针
  • 楼宇自控成智能建筑核心技术,提升节能效率,构筑绿色发展新优势
  • 举例说明MyBatis中逻辑分页的优缺点
  • [onnx 学习记录] 包包含的主要内容
  • python中的时间模块
  • 基于事件驱动型LSTM模型的黄金周收益归因:贸易关税冲击下的5%涨幅量化解析
  • Linux:多线程---初识线程
  • Veeam Backup Replication Console 13 beta 备份 PVE
  • 深入解析Kafka核心参数:buffer_memory、linger_ms与batch_size的优化之道
  • 【基于SpringBoot的图书管理系统】Redis在图书管理系统中的应用:加载和添加图书到Redis,从数据同步到缓存优化
  • 在 Spring Boot 项目中如何合理使用懒加载?
  • Vue 2 混入 (Mixins) 的详细使用指南