─━ IT ━─

RabbitMQ를 Spring framework 에 연동하는 방법

DKel 2023. 9. 21. 21:50
반응형

비동기 메시지 큐를 사용하여 애플리케이션 간 통신을 구현하고자 할 때 매우 일반적입니다. RabbitMQ는 메시지 브로커로서 메시지를 보내고 받는 데 사용됩니다. Spring Framework와 함께 RabbitMQ를 사용하려면 다음 단계를 따를 수 있습니다:

의존성 추가: 먼저 Maven 또는 Gradle을 사용하여 Spring AMQP 및 RabbitMQ 클라이언트를 포함한 필수 라이브러리를 프로젝트에 추가합니다.

Maven을 사용하는 경우 pom.xml 파일에 다음 종속성을 추가합니다:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

Spring Boot Application 생성: Spring Boot 애플리케이션을 만들거나 기존 애플리케이션을 사용합니다.

RabbitMQ 설정 추가: application.properties 또는 application.yml 파일을 사용하여 RabbitMQ 연결 정보를 설정합니다. 예를 들어:

spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=your_username
spring.rabbitmq.password=your_password

메시지 수신자 (Consumer) 생성: RabbitMQ 메시지를 수신하는 컴포넌트를 생성합니다. Spring에서는 @Component 어노테이션을 사용하여 빈으로 등록할 수 있습니다.

import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;

@Component
public class MessageReceiver {
    
    @RabbitListener(queues = "your_queue_name")
    public void receiveMessage(String message) {
        System.out.println("Received message: " + message);
    }
}

메시지 전송자 (Producer) 생성: RabbitMQ로 메시지를 보내는 컴포넌트를 생성합니다.

import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public class MessageSender {

    @Autowired
    private RabbitTemplate rabbitTemplate;

    public void sendMessage(String message) {
        rabbitTemplate.convertAndSend("your_exchange_name", "your_routing_key", message);
    }
}

메시지 전송: 메시지를 전송하려면 MessageSender 컴포넌트를 사용합니다.

@Autowired
private MessageSender messageSender;

// ...

messageSender.sendMessage("Hello, RabbitMQ!");

애플리케이션 실행: Spring Boot 애플리케이션을 실행하면 메시지 송수신이 시작됩니다.

RabbitMQ 관리자 페이지: RabbitMQ 관리자 페이지를 사용하여 큐 및 교환을 관리하고 모니터링할 수 있습니다. 웹 브라우저에서 RabbitMQ 관리자 페이지에 액세스할 수 있으며, 주소는 일반적으로 http://localhost:15672 또는 RabbitMQ 서버의 호스트 및 포트에 따라 다를 수 있습니다.

이것은 RabbitMQ를 Spring Framework와 연동하는 간단한 예제입니다. 더 복잡한 시나리오에서는 토픽 교환, 팬아웃 교환, 오류 처리 및 기타 고급 기능을 고려해야 할 수 있습니다. RabbitMQ 및 Spring AMQP 문서를 자세히 살펴보고 프로젝트 요구 사항에 맞게 설정을 조정해야 합니다.

반응형