Java RabbitMQ Work模式,就是配置多个消费者消费一个队列的消息,可以提高消息的并发处理速度,架构如下图
提示:无论使用RabbitMQ那种工作模式,每个队列都支持多个消费者,同一个队列,一条消息只会被其中一个消费者处理。
1.前置教程
请先阅读下面章节,了解相关知识
- RabbitMQ基础概念
- RabbitMQ Work模式
- RabbitMQ Java快速入门章节 (必读,因为后续章节不会重复贴代码,仅展示关键代码)
2.配置多个消费者
通过RabbitListener注解,配置concurrency参数即可实现,下面代码启动10个消费者并发处理消息。
package com.tizi365.rabbitmq.listener;
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;
@Component
// 声明消息监听器,通过queues参数指定监听的队列
// 关键参数:concurrency 代表当前监听器需要启动多少个消费者,类型是字符串
@RabbitListener(queues = "hello", concurrency = "10")
public class HelloListener {
// 使用RabbitHandler标记消息处理器,用来执行消息处理逻辑
@RabbitHandler
public void receive(String msg) {
System.out.println("消费者 - 收到消息 '" + msg + "'");
}
}