RabbitMQ 应用 - SpringBoot

06-02 1474阅读

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

Spring  Spring AMQP

RabbitMQ  RabbitMQ tutorial - "Hello World!" | RabbitMQ

工程搭建步骤:

1.引入依赖

RabbitMQ 应用 - SpringBoot

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

RabbitMQ 应用 - SpringBoot

3.编写生产者代码

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

5.运行观察结果

工作队列模式

常量声明

RabbitMQ 应用 - SpringBoot

声明队列

RabbitMQ 应用 - SpringBoot

生产者代码

RabbitMQ 应用 - SpringBoot

消费者代码(监听类)

RabbitMQ 应用 - SpringBoot

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

RabbitMQ 应用 - SpringBoot

队列已经创建成功

RabbitMQ 应用 - SpringBoot

恢复监控类,重启服务

RabbitMQ 应用 - SpringBoot

@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模式)

RabbitMQ 应用 - SpringBoot

RabbitMQ 应用 - SpringBoot

RabbitMQ 应用 - SpringBoot

RabbitMQ 应用 - SpringBoot

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

RabbitMQ 应用 - SpringBoot

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

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

RabbitMQ 应用 - SpringBoot

路由模式

交换机类型为Direct时, 会把消息交给符合指定routing key的队列

队列和交换机的绑定, 不是任意的绑定了, 而是要指定一个RoutingKey(路由key)

消息的发送方在向Exchange发送消息时, 也需要指定消息的RoutingKey

Exchange也不再把消息交给每一个绑定的key, 而是根据消息的RoutingKey进行判断, 只有队列的

RoutingKey 和消息的RoutingKey 完全一致, 才会接收到消息

RabbitMQ 应用 - SpringBoot

RabbitMQ 应用 - SpringBoot

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

RabbitMQ 应用 - SpringBoot

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

RabbitMQ 应用 - SpringBoot

RabbitMQ 应用 - SpringBoot

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

RabbitMQ 应用 - SpringBootRabbitMQ 应用 - SpringBoot

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

RabbitMQ 应用 - SpringBoot

通配符模式

Topics 和Routing模式的区别是:

1. topics 模式使用的交换机类型为topic(Routing模式使用的交换机类型为direct)

2. topic 类型的交换机在匹配规则上进行了扩展, Binding Key支持通配符匹配(正则匹配)

RabbitMQ 应用 - SpringBoot

RabbitMQ 应用 - SpringBoot

RabbitMQ 应用 - SpringBoot

RabbitMQ 应用 - SpringBoot

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

RabbitMQ 应用 - SpringBoot

RabbitMQ 应用 - SpringBoot

RabbitMQ 应用 - SpringBoot

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

RabbitMQ 应用 - SpringBoot

RabbitMQ 应用 - SpringBoot

RabbitMQ 应用 - SpringBoot

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

RabbitMQ 应用 - SpringBoot

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码