Java RabbitMQのワークモードは、複数のコンシューマを構成して単一のキューからメッセージを消費し、メッセージの並行処理速度を向上させることができます。アーキテクチャは以下の図のようになります。

RabbitMQ ワークモード

注意:RabbitMQでどのワークモードを使用しても、各キューは複数のコンシューマをサポートします。同じキューに対して、メッセージは1つのコンシューマのみによって処理されます。

1. 初めにチュートリアルを読む

関連する知識を理解するために、最初に以下のセクションを読んでください。

2. 複数のコンシューマを構成する

RabbitListenerアノテーションを使用し、concurrencyパラメータを設定することで、以下のコードで10個のコンシューマを同時にメッセージ処理できます。

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
// メッセージリスナーを宣言し、queuesパラメータを使用してリスニングするキューを指定する
// 主要なパラメータ:concurrencyは、現在のリスナーの開始が必要なコンシューマの数を表し、そのタイプは文字列です
@RabbitListener(queues = "hello", concurrency = "10")
public class HelloListener {
	// RabbitHandlerを使用してメッセージハンドラをマークし、メッセージ処理ロジックを実行するために使用します
    @RabbitHandler
    public void receive(String msg) {
        System.out.println("コンシューマ - メッセージを受信しました '" + msg + "'");
    }
}