SpringBoot集成RabbitMQ
一、关于RabbitMQ
RabbitMQ是一个消息队列,主要用来实现程序的异步和解耦,同时起到消息缓冲,消息分发的作用。
(异步调用:与之对应的是同步调用,同步调用指程序按照定义的顺序执行,每一行程序必须等待上一行程序执行完毕后再开始执行。异步调用指程序在顺序执行时不必等待调用语句的返回结果就可以执行后面的程序
解耦:降低程序内部之间的耦合度,就是将程序积木化)
通常谈到的队列服务有三个概念:发消息者(Producer)、队列(Queue)、收消息者(Consumer)。RabbitMQ在这个概念的基础上,多做了一层抽象,在发消息者和队列之间,加入了交换器(Exchange),交换机的主要作用是接受消息并转发到绑定的队列,交换机不存储消息。它们的关系如下图所示。
~ P代表消息生产者,也就是往RabbitMQ发消息的程序;
~ 中间的交换机和队列构成了RabbitMQ;
~ 右侧的C代表消息消费者,也就是从RabbitMQ中拿消息的程序。
二、SpringBoot集成RabbitMQ
1、配置Pom包,添加相关依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
2、添加配置信息
spring.rabbitmq.host = 192.168.0.181
spring.rabbitmq.port = 5672
spring.rabbitmq.username = admin
spring.rabbitmq.password = admin
3、RabbitMQ配置类,设置队列
4、设计消息发送者(rabbitTemplate是SpringBoot提供的默认实现)
5、设计消息接收者
(消息接收者和消息发送者的queue name必须一致,不然不能接收)(消息接收者的相关程序可以放在另一个SpringBoot项目中,更好的实现解耦)