文章目录
SpringBoot中使用RabbitMQ
RabbitMQ总共6种模型“Hello World!”、Work Queues、Publish/Subscribe、Routing、Topics、RPC
通过@RabbitListener
来对队列进行监听,@EnableRabbit
加在springboot启动文件上,可以自动打开RabbitMQ的监听
1 环境
- 依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
- 配置文件
spring:
rabbitmq:
host: localhost
password: guest
username: guest
port: 5672
virtual-host:
application:
# 给项目起个名字
name: springboot-rabbitmq
2 hello world 模型
生产者
@Test
public void testProducer(){
//消息发送到hello 路由键的队列
rabbitTemplate.convertAndSend("hello","hello Object");
}
只有生产者没有消费者会导致队列不会生成,创建消费者,队列名和routingKey
相同都是hello
底层默认值:durable:true
、exclusive:false
、autoDelete:false
@Component
//rabbitmq消费者监听
//需要监听队列,先声明
@RabbitListener(queuesToDeclare = @Queue("hello"))
public class HelloConsumer {
//方法名任意
//代表从消息中取出消息的回调方法
@RabbitHandler
public void receive(String msg){
//msg就是监听队列中的消息
System.out.println("message: "+msg);
}
}
3 WorkQueues
公平消费模型
生产者
@Test
//work queues模型,公平消费
public void testWorkQueues() {
for (int i = 0; i < 20; i++) {
rabbitTemplate.convertAndSend