자바 RabbitMQ의 작업 모드는 단일 대기열에서 메시지를 소비하기 위해 여러 소비자를 구성하는 것으로, 이는 메시지의 동시 처리 속도를 향상시킬 수 있습니다. 아키텍처는 다음 다이어그램에서 볼 수 있습니다.
참고: RabbitMQ에서 어떤 작업 모드를 사용하더라도 각 대기열은 여러 소비자를 지원합니다. 동일한 대기열의 경우 메시지는 소비자 중 하나에 의해서만 처리됩니다.
1. 입문 튜토리얼
관련 지식을 이해하기 위해 먼저 다음 섹션을 읽어주세요.
- RabbitMQ 기본 개념
- RabbitMQ 작업 대기열
- 자바 RabbitMQ 빠른 시작 (필수입니다. 후속 섹션에서 코드를 반복하지 않고 중요한 코드만 표시합니다.)
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 + "'");
}
}