千家信息网

SpringBoot中怎么使用RabbitMQ消息组件

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章将为大家详细讲解有关SpringBoot中怎么使用RabbitMQ消息组件,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1 在虚拟机中安装ra
千家信息网最后更新 2026年11月03日SpringBoot中怎么使用RabbitMQ消息组件

这篇文章将为大家详细讲解有关SpringBoot中怎么使用RabbitMQ消息组件,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

1 在虚拟机中安装rabbitmq

2 开启rabbitmq

3 页面查看rabbitmq

3 rabbitmq相关知识点讲解 [1]

MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。MQ是消费-生产者模型的一个典型的代表,一端往消息队列中不断写入消息,而另一端则可以读取队列中的消息。

1、队列、生产者、消费者

队列:mq内部存储信息的生产者:产生信息的消费者:消费消息的

2、Exchange、Binding exchange:交换器,交换按照一定规则与对列绑定,消息才能到queue中 Binding用routing key

3、Exchange Type有四种

  RabbitMQ常用的Exchange Type有三种:fanout、direct、topic。headers不常用。  fanout:把所有发送到该Exchange的消息投递到所有与它绑定的队列中。将消息发送与该exchange绑定的所有的对列,不需要比较路由键  direct:把消息投递到那些binding key与routing key完全匹配的队列中。要求路由键与对列名完全匹配  topic:将消息路由到binding key与routing key模式匹配的队列中。用#匹配0或者多个,*匹配一个

4 下面简单实现下图的结果

1 创建direct类型的交换器

2 创建 fanout类型的交换器

3 创建 topic类型的交换器

4 创建的结果

5 创建对列,以下图为例子

队列创建完成

6 绑定队列direct类型例子

7 绑定fanout类型的例子

8 绑定topic类型的例子

9 测试direct类型的交换器

测试结果

10 测试 fanout类型的交换器

测试结果

11 测试topic 类型的交换器

5 在springBoot项目下使用RabbitMq

pom.xml

     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">         4.0.0    org.springframework.boot            spring-boot-starter-parent            2.1.6.RELEASE                     com.maospring-01-amqp0.0.1-SNAPSHOTspring-01-amqpDemo project for Spring Boot    1.8                            org.springframework.boot                        spring-boot-starter-amqp                                                org.springframework.boot                        spring-boot-starter-web                                org.springframework.boot                        spring-boot-starter-test                        test                                                                    org.springframework.boot                                    spring-boot-maven-plugin            

applicaton.properties配置

spring.rabbitmq.host=192.168.1.139

spring.datasource.password=guest

spring.datasource.username=guest

book实体

public class book {

private String bookName;private String author;public book(String bookName, String author) {    this.bookName = bookName;            this.author = author;}public book() {}public String getAuthor() {    return author;}public void setAuthor(String author) {    this.author = author;}public String getBookName() {    return bookName;}public void setBookName(String bookName) {    this.bookName = bookName;}[@Override](https://my.oschina.net/u/1162528)public String toString() {    return "book{" +            "bookName='" + bookName + '\'' +            ", author='" + author + '\'' +            '}';}

}

测试发送数据代码 @Test public void contextLoads() {

    //message需要自己构造一个,定义消息体内容和消息头          //  rabbitTemplate.send(exchange,roteKey,message);      //只需要传入要发送的对象,自动序列化发送给rabbitmq,对象被默认序列化后发送            Map map= new HashMap<>();            map.put("msg","这是第一个消息");            map.put("data", Arrays.asList("hello","wored","rabbitmq"));            rabbitTemplate.convertAndSend("exchange.direct","mao.news",new book("少年","天机"));}  /** 采用广播的方式 **/[@Test](https://my.oschina.net/azibug)public void senMsg(){    rabbitTemplate.convertAndSend("exchange.fanout","",new book("少年","落非"));}接收数据测试  //接收数据  [@Test](https://my.oschina.net/azibug)public void receive(){    Object o=rabbitTemplate.receiveAndConvert("mao.news");            System.out.println(o.getClass());            System.out.println(o);        }上面测试有个问题,在管理界面显示的是序列化的数据下面来解决该问题

下面这样就可以以json格式显示,与之前的一篇博客类似,配置自定义redis配置

@Configuration

public class myamqpconfig { @Bean public MessageConverter messageConverter(){

    return new Jackson2JsonMessageConverter();}

}

使用下面的就可以收到消息

@Service

public class BookService {

@RabbitListener(queues = "mao.news")public  void receive(book book1){    System.out.println("收到消息:"+book1.toString());        }

关于SpringBoot中怎么使用RabbitMQ消息组件就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

消息 队列 类型 测试 交换器 例子 数据 结果 消费 内容 序列 生产者 知识 路由 生产 配置 组件 一端 下图 信息 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 百单网互联网科技有限公司 A股互联网金融科技公司 互联网最新的科技 新华互联网科技学院 互联网巨头科技公司 上海喔噻互联网科技 汉立互联网科技有限公司联系电话 华中科技有哪些互联网大佬 宁波青枫互联网科技有限公司 茂名市互联网科技产业园 受益于互联网科技的高速发展 上海宁丞科技互联网 花神(南京)互联网科技有限公司 速维有品互联网信息科技(苏州)有限公司 玉溪新华互联网科技好不好 朱啸虎曾投资哪些互联网科技企业 互联网公司高科技产品 城市宝互联网科技有限公司 承德科技产业互联网平台 高科技和互联网的现代国家 互联网科技金融公司 互联网高科技股票 互联网科技咨询 互联网系的金融科技公司 南山科技园互联网公司有哪些 中国互联网十大科技股排名 互联网新科技动漫ppt素材 互联网科技创新的路径 南博望互联网科技有限公司 银行科技岗属于互联网吗
0