[java] 자바 스프링 부트 클라우드 메시징 사용 방법

클라우드 메시징은 많은 시스템에서 이벤트 기반 아키텍처를 지원하고자 할 때 사용됩니다. 자바 스프링 부트에서 클라우드 메시징을 사용하는 방법에 대해 알아보겠습니다.

1. 의존성 추가

먼저, pom.xml 파일에 클라우드 메시징을 위한 의존성을 추가해야 합니다.

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-stream-kafka</artifactId>
</dependency>

2. 설정

다음으로, application.properties 파일에 Kafka 브로커의 주소를 설정해야 합니다.

spring.cloud.stream.bindings.output.destination=topicName
spring.cloud.stream.kafka.binder.brokers=kafkaAddress:9092

여기서 topicName은 메시지가 발행되는 토픽의 이름이고, kafkaAddress는 Kafka 브로커의 주소입니다.

3. 메시지 송수신

이제 자바 코드에서 메시지를 발행하고 구독하는 로직을 작성할 수 있습니다.

import org.springframework.cloud.stream.annotation.EnableBinding;
import org.springframework.cloud.stream.messaging.Source;
import org.springframework.messaging.MessageChannel;
import org.springframework.messaging.support.MessageBuilder;

@EnableBinding(Source.class)
public class MessageProducer {

    private MessageChannel output;

    public MessageProducer(Source source) {
        this.output = source.output();
    }

    public void sendMessage(String message) {
        output.send(MessageBuilder.withPayload(message).build());
    }
}
import org.springframework.cloud.stream.annotation.StreamListener;
import org.springframework.cloud.stream.messaging.Sink;
import org.springframework.stereotype.Component;

@Component
@EnableBinding(Sink.class)
public class MessageConsumer {

    @StreamListener(Sink.INPUT)
    public void listen(String message) {
        System.out.println("Received message: " + message);
    }
}

위의 코드에서 MessageProducer는 메시지를 발행하고, MessageConsumer는 해당 토픽에서 메시지를 수신합니다.

위와 같이 자바 스프링 부트에서 클라우드 메시징을 사용할 수 있습니다. 또한, 클라우드 플랫폼에 배포할 때에도 동일한 방법을 사용할 수 있습니다.

참고 자료