Le mode de travail de Java RabbitMQ consiste à configurer plusieurs consommateurs pour consommer des messages à partir d'une seule file, ce qui peut améliorer la vitesse de traitement concurrente des messages. L'architecture est illustrée dans le schéma suivant.
Remarque : Peu importe le mode de travail utilisé dans RabbitMQ, chaque file prend en charge plusieurs consommateurs. Pour la même file, un message ne sera traité que par l'un des consommateurs.
1. Tutoriel préliminaire
Veuillez lire les sections suivantes en premier pour comprendre les connaissances connexes.
- Concepts de base de RabbitMQ
- Mode de travail de RabbitMQ
- Démarrage rapide de RabbitMQ pour Java (Obligatoire, car les sections suivantes ne répéteront pas le code mais afficheront uniquement le code clé)
2. Configuration de plusieurs consommateurs
En utilisant l'annotation RabbitListener et en configurant le paramètre de concurrence, vous pouvez démarrer 10 consommateurs pour traiter simultanément les messages avec le code suivant.
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
// Déclarer le récepteur de message et spécifier la file à écouter via le paramètre queues
// Paramètre clé : la concurrence représente le nombre de consommateurs qui doivent être démarrés pour le récepteur actuel, et son type est une chaîne
@RabbitListener(queues = "hello", concurrency = "10")
public class HelloListener {
// Utilisez RabbitHandler pour marquer le gestionnaire de message, qui est utilisé pour exécuter la logique de traitement des messages
@RabbitHandler
public void receive(String msg) {
System.out.println("Consommateur - Message reçu : '" + msg + "'");
}
}