Spring AMQP 是对 Spring 基于 AMQP 的消息收发解决方案,它是一个抽象层,不依赖于特定的 AMQP Broker 实现和客户端的抽象,所以可以很方便地替换。比如我们可以使用 spring-rabbit 来实现。
基本消息队列的消息发送流程:
- 建立connection
- 创建channel
- 利用channel声明队列
- 利用channel向队列发送消息
基本消息队列的消息接收流程:
- 建立connection
- 创建channel
- 利用channel声明队列(生产者与消费者都需要声明队列,是防止队列不存在,重复声明不会影响)
- 定义consumer的消费行为handleDelivery()
- 利用channel将消费者与队列绑定(回调机制,绑定函数但要收到消息才执行)
1、引入SpringAMQP依赖
<!--AMQP依赖,包含RabbitMQ-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
2、配置SpringAMQP
spring:
rabbitmq:
host: 170.106.116.159
port: 5672
username: badianboke
password: 123321
verify-hostname: /
3、编写类使用SpringAMQP
package cn.badianboke.mq.spring;
package cn.itcast.mq.listener;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;
@Component
public class SpringRabbitListener {
@RabbitListener(queues = "simple.queue")
public void listenSimpleQueue(String message){
System.out.println("Received Message: " + message);
}
}
可以看到