轻松掌握消息队列RabbitMQ在SpringAMQP中的实践知识点

本文介绍了Spring如何集成RabbitMQ,包括基本消息队列可能导致的内存泄漏问题及工作消息队列的解决方案。此外,还探讨了优化消息预取和三种发布订阅模式:广播、直接路由和话题路由,展示了如何在不同场景下更有效地使用消息队列。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、介绍

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

spring集成了rabbitmq,可以对rabbitmq先进行安装简单了解。参考我的rabbitmq文章。

2、使用

在这里插入图片描述

1、基本消息队列BasicQueue案例

一个消息消费者,上个消息未处理完,队列中的消息将阻塞,导致内存泄漏

1、引入AMQP依赖

在这里插入图片描述

2、添加发送消息代码

在这里插入图片描述

3、添加消费消费代码

在这里插入图片描述

测试:消费者的服务需启动,执行发送消息代码。

2、工作消息队列WorkQueue案例

在这里插入图片描述

基本消息队列如果队列里的消息越来越多可能导致内存泄漏,而工作消息队列这里可以有两个消息消费者方法。

在这里插入图片描述

1、添加发送消息代码

引jar包与基本消息队列一致,此处省略

在这里插入图片描述

2、添加消息消费代码

在这里插入图片描述

测试:消费者的服务需启动,执行发送消息代码。

3、优化消息预取

以上的测试代码,默认两个消费者会预取消息队列中的任务,导致消息队列平均分配了一样数量的任务。这里消费者2处理消息的速度比较慢,所以这个预取逻辑不够友好。

优化:只要修改消息预取的数量限制,即可
在这里插入图片描述

3、发布订阅案例

在这里插入图片描述

1、广播Fanout方式

会将同一个消息发送给了所有的消费者。

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

在这里插入图片描述

1、申明广播交换机、申明队列并绑定

在这里插入图片描述

启动服务后,在rabbit的管理页面可以看到如下交换机和队列已完成绑定

在这里插入图片描述

2、添加消息消费代码

在这里插入图片描述

记得类上加@Component

3、添加消息发送代码

在这里插入图片描述

在这里插入图片描述

同一个消息发送给了所有的消费者。

2、路由Direct方式

在这里插入图片描述

1、消费者申明路由交换机、队列和路由key

在这里插入图片描述

2、添加消息发送代码

在这里插入图片描述

3、话题Topic方式

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

1、消费者申明话题交换机、队列和路由key

在这里插入图片描述

2、添加消息发送代码

在这里插入图片描述

3、优化

1、优化消息发送/接收格式

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

优化完之后,发送的消息我们可以在rabbit管理页面看到,没优化前是一个很长的字符串。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码反应堆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值