El modo de trabajo de Java RabbitMQ es configurar múltiples consumidores para consumir mensajes de una sola cola, lo que puede mejorar la velocidad de procesamiento concurrente de los mensajes. La arquitectura se muestra en el siguiente diagrama.
Nota: Independientemente del modo de trabajo que se utilice en RabbitMQ, cada cola admite múltiples consumidores. Para la misma cola, un mensaje solo será procesado por uno de los consumidores.
1. Tutorial Preliminar
Por favor, lee las siguientes secciones primero para comprender el conocimiento relacionado.
- Conceptos básicos de RabbitMQ
- Modo de trabajo de RabbitMQ
- Inicio rápido de RabbitMQ para Java (Obligatorio, ya que las secciones posteriores no repetirán el código, sino que solo mostrarán el código clave)
2. Configurar Múltiples Consumidores
Mediante el uso de la anotación RabbitListener y la configuración del parámetro de concurrencia, puedes iniciar 10 consumidores para procesar mensajes de forma concurrente con el siguiente código.
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
// Declara el listener de mensajes y especifica la cola a la que escuchar a través del parámetro queues
// Parámetro clave: concurrency representa el número de consumidores que deben iniciarse para el listener actual, y su tipo es una cadena
@RabbitListener(queues = "hello", concurrency = "10")
public class HelloListener {
// Usa RabbitHandler para marcar el manejador de mensajes, que se utiliza para ejecutar la lógica de procesamiento de mensajes
@RabbitHandler
public void receive(String msg) {
System.out.println("Consumidor - Recibido mensaje '" + msg + "'");
}
}