La modalità di lavoro di Java RabbitMQ consiste nella configurazione di più consumatori per consumare messaggi da una singola coda, il che può migliorare la velocità di elaborazione concorrente dei messaggi. L'architettura è come mostrato nel diagramma seguente.

RabbitMQ Modalità di lavoro

Nota: Indipendentemente dalla modalità di lavoro utilizzata in RabbitMQ, ogni coda supporta più consumatori. Per la stessa coda, un messaggio sarà elaborato solo da uno dei consumatori.

1. Tutorial preliminare

Si prega di leggere prima le seguenti sezioni per comprendere le conoscenze correlate.

2. Configurare più consumatori

Utilizzando l'annotazione RabbitListener e configurando il parametro di concorrenza, è possibile avviare 10 consumatori per elaborare contemporaneamente i messaggi con il seguente codice.

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
// Dichiarare il listener del messaggio e specificare la coda a cui ascoltare attraverso il parametro delle code
// Parametro chiave: la concorrenza rappresenta il numero di consumatori che devono essere avviati per il listener corrente, ed il suo tipo è una stringa
@RabbitListener(queues = "hello", concurrency = "10")
public class HelloListener {
	// Utilizzare RabbitHandler per contrassegnare il gestore del messaggio, che viene utilizzato per eseguire la logica di elaborazione del messaggio
    @RabbitHandler
    public void receive(String msg) {
        System.out.println("Consumatore - Messaggio ricevuto '" + msg + "'");
    }
}