[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
는 해당 토픽에서 메시지를 수신합니다.
위와 같이 자바 스프링 부트에서 클라우드 메시징을 사용할 수 있습니다. 또한, 클라우드 플랫폼에 배포할 때에도 동일한 방법을 사용할 수 있습니다.