Рабочий режим Java RabbitMQ предполагает настройку нескольких потребителей для потребления сообщений из одной очереди, что позволяет увеличить параллельную скорость обработки сообщений. Архитектура показана на следующей диаграмме.
Примечание: Независимо от того, какой рабочий режим используется в RabbitMQ, каждая очередь поддерживает несколько потребителей. Для одной и той же очереди сообщение будет обработано только одним из потребителей.
1. Предварительное обучение
Пожалуйста, сначала ознакомьтесь со следующими разделами, чтобы понять соответствующие знания.
- Основные концепции RabbitMQ
- Рабочий режим RabbitMQ
- Быстрый старт 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 + "'");
}
}