一、消息中间件RabbitMQ(一)
1、RabbitMQ常用词汇介绍
1.1、RabbitMQ包括生产者、消费者、消息、队列、交换机、路由等基础组件
- 生产者Producer:用来产生、发送消息的程序
- 消费者Consumer:用来监听、接收、消费和处理消息的程序
- 消息:看做实际的数据,消息是通过二进制的数据流进行传输的,这点和Redis很像
- 队列:消息的存储区,看做一个中转站,消息经过中转站后,将消息传输到消费者
- 交换机:也可看做消息的中转站,用来首次接收和分发消息,包括Headers,Fanout,Direct,Topic这4种。
- 路由:相当于地址,通常和交换机绑定在一起,将消息路由到指定的队列。
1.2、RabbitMQ消息模型有多种
基于HeadersExchange的消息模型
基于FanoutExchange的消息模型
基于DirectExchange的消息模型
基于TopicExchange的消息模型
消息模型都有一个特点,它们基本上都包含交换机、路由、队列
1.3、RabbitMQ的基本消息模型图

2、Springboot整合RabbitMQ
2.1、引入RabbitMQ的依赖
1 | <!--springboot整合RabbitMQ--> |
2.2、application.properties配置文件配置RabbitMQ
1 | #rabbitmq |
3、RabbitMQ的简单使用
3.1、字节类型消息
1、自定义注入配置RabbitMQConfig
1 | package com.victor.config; |
2、消息生产者BasicPublisher
1 | package com.victor.component; |
3、消费者BasicConsumer
1 | package com.victor.component; |
4、单元测试类RabbitMQTest
1 | package com.victor.mq; |
5、RabbitMQ基本消息模型单元测试运行结果

6、RabbitMQ管理后台查看创建的基本消息模型

3.2、其他消息类型
- RabbitMQ在实际中,除了发送字节型消息(getBytes()或者序列化)的消息和采用@RabbitListener接收字节数组类型的消息之外,还可接收对象类的方式实现消息的发送和接收。
1、同样引入之前的类User
1 | package com.victor.model; |
2、在application.properties配置文件中新增对象类型对应的消息模型名称
1 | #处理对象类型消息:定义基本消息模型中队列、交换机、路由的名称 |
3、在RabbitMQConfig配置类中新建一个新的用来发送对象类型消息的队列、交换机、路由并进行绑定
1 | //处理对象类型消息:交换机,队列,路由 |
4、发送对象类型消息的生产者
1 | /** |
5、接收对象类型消息的消费者
1 | /** |
6、对象类型消息测试方法
1 |
|
7、在控制台查看运行结果

8、在RabbitMQ管理后台查看对象类型消息的队列

4、基于HeadersExchange的消息模型
在实际中使用很少,几乎用不到。
- 本文作者: Victor Dan
- 本文链接: https://victorblog.github.io/2018/07/08/消息中间件RabbitMQ-一/
- 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!
