安装RabbitMQ教程:点击,查看安装教程
什么是AMQP?
amqp(高级消息队列协议)是一种协议,类似http协议
amqp协议规定了,消息生产者和mq及消息消费者和mq通信的标准
什么是Spring AMQP?
Spring基于amqp协议定义的一套API规范(spring-amqp),并且由rabbitmq官方对这一套规范进行了实现(spring-rabbit);
SpringAMQP是基于RabbitMQ封装的一套模板,并且还利用SpringBoot对其实现了自动装配,使用起来非常方便。
SpringAMQP提供了三个功能
自动声明队列、交换机及其绑定关系
基于注解的监听器模式,异步接收消息
封装了RabbitTemplate工具,用于发送消息
工作模式
1.简单工作模式
2.工作队列模式
3.发布订阅模式
4.路由模式
5.通配符模式
模式使用如下:
1.简单工作模式
工作流程图:
模式特点:生产者发送消息到默认交换机,默认交换机根据消息队列的名称,将消息转发到指定队列。
消费者监听消息队列,获取消息。
项目结构
1.父工程的pom.xml
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.9.RELEASE</version>
<relativePath/>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties><dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
2. 消息生产者模块
2.1.消息生产者模块pom.xml,application.yml配置,并编写启动类
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--AMQP依赖,包含RabbitMQ-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
</dependencies>application.yml配置
server:
port: 8081
spring:
rabbitmq:
# 主机名