Tryb pracy RabbitMQ Java polega na skonfigurowaniu wielu konsumentów do pobierania wiadomości z pojedynczej kolejki, co może poprawić równoczesną prędkość przetwarzania wiadomości. Architektura jest przedstawiona na poniższym diagramie.
Uwaga: Niezależnie od użytego trybu pracy w RabbitMQ, każda kolejka obsługuje wiele konsumentów. Dla tej samej kolejki wiadomość zostanie przetworzona tylko przez jednego z konsumentów.
1. Samouczek wstępny
Proszę najpierw przeczytać poniższe sekcje, aby zrozumieć związane z nimi zagadnienia.
- Podstawowe koncepcje RabbitMQ
- Tryb pracy RabbitMQ
- Szybki start z RabbitMQ dla Javy (Obowiązkowy, ponieważ kolejne sekcje nie będą powtarzać kodu, lecz będą wyświetlać tylko kluczowy kod)
2. Konfigurowanie wielu konsumentów
Używając adnotacji RabbitListener i konfigurując parametr concurrency, możesz uruchomić 10 konsumentów do równoczesnego przetwarzania wiadomości za pomocą poniższego kodu.
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
// Deklaruj nasłuchiwacz wiadomości i określ kolejkę do nasłuchiwania poprzez parametr queues
// Kluczowy parametr: concurrency reprezentuje liczbę konsumentów, które należy uruchomić dla bieżącego nasłuchiwacza, a jego typ to łańcuch znaków
@RabbitListener(queues = "hello", concurrency = "10")
public class HelloListener {
// Użyj RabbitHandler, aby oznaczyć obsługę wiadomości, która służy do wykonania logiki przetwarzania wiadomości
@RabbitHandler
public void receive(String msg) {
System.out.println("Konsument - Otrzymano wiadomość '" + msg + "'");
}
}