一、初识MQ
1、什么是MQ?
MQ,中文是消息队列(MessageQueue),字面来看就是存放消息的队列。也就是事件驱动架构中的Broker。
比较常见的MQ实现:
- ActiveMQ
- RabbitMQ
- RocketMQ
- Kafka
2、同步通讯
3、异步通讯
4、常见MQ技术对比
二、RabbitMQ快速入门
1、RabbitMQ安装
我们在Centos7服务器中使用Docker来安装。
下载镜像:在线拉取
docker pull rabbitmq:3.8-management
安装命令:
docker run \
-e RABBITMQ_DEFAULT_USER=itcast \
-e RABBITMQ_DEFAULT_PASS=123321 \
-v mq-plugins:/plugins \
--name mq \
--hostname mq \
-p 15672:15672 \
-p 5672:5672 \
-d \
rabbitmq:3.8-management
执行效果:
访问地址:xxx.xxx.xxx.xxx:15672
账户:itcast 密码: 123321
2、 RabbitMQ的结构和概念
3、RabbitMQ的消息模型
4、 简单队列模型
三、SpringAMQP的使用
1、什么是Spring AMQP
SpringAMQP是基于RabbitMQ封装的一套模板,并且还利用SpringBoot对其实现了自动装配,使用起来非常方便。
SpringAmqp的官方地址:Spring AMQP
SpringAMQP提供了三个功能:
- 自动声明队列、交换机及其绑定关系
- 基于注解的监听器模式,异步接收消息
- 封装了RabbitTemplate工具,用于发送消息
2、案例——常见的5种实现模型
2.1 Basic Queue 简单队列模型
在父工程mq-demo中引入依赖
<!--AMQP依赖,包含RabbitMQ-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
2.1.1 消息发送
首先配置MQ地址,在publisher服务的application。yml中添加配置:
spring: