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.

RabbitMQ Tryb pracy

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.

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 + "'");
    }
}