이 문서는 Google Cloud Translation API를 사용해 자동 번역되었습니다.
어떤 문서는 원문을 읽는게 나을 수도 있습니다.
이 게시물에서는 Spring Boot와 Apache Kafka를 사용하여 작업하는 방법을 살펴보겠습니다. 다음 주제를 다룹니다.
Apache Kafka는 분산 스트리밍 플랫폼입니다. 실시간 데이터 파이프라인 및 스트리밍 앱을 구축하는 데 사용됩니다. 수평 확장이 가능하고 내결함성이 있으며 빠릅니다.
Kafka는 Scala와 Java로 작성되었습니다. 게시-구독 메시징 모델이 있습니다. 고성능 시스템입니다.
Spring Boot는 마이크로 서비스를 생성하는 데 사용되는 Java 기반 프레임워크입니다. 새 Spring 애플리케이션의 부트스트래핑 및 개발을 단순화하는 데 사용됩니다.
Spring Boot는 독단적입니다. 기본 구성 세트를 제공합니다. 독립 실행형 프로덕션 등급 Spring 기반 애플리케이션을 쉽게 만들 수 있습니다.
Apache Kafka에서 Spring Boot를 사용하려면 프로젝트에 다음 종속성을 추가해야 합니다.
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
</dependency>
또한 Avro와 함께 Apache Kafka를 사용하려면 다음 종속성을 추가해야 합니다.
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-avro-serializer</artifactId>
</dependency>
이제 종속성이 준비되었으므로 Apache Kafka에서 Spring Boot를 사용하는 방법을 살펴보겠습니다.
먼저 Apache Kafka 브로커를 구성해야 합니다. application.properties 파일에서 다음 속성을 설정하여 이를 수행할 수 있습니다.
spring.kafka.bootstrap-servers=localhost:9092
spring.kafka.producer.retries=0
spring.kafka.producer.batch-size=16384
spring.kafka.producer.buffer-memory=33554432
spring.kafka.consumer.group-id=test
spring.kafka.consumer.auto-offset-reset=earliest
spring.kafka.consumer.enable-auto-commit=false
위의 구성에서 다음 속성을 설정합니다.
이제 생산자를 만드는 방법을 살펴보겠습니다. Producer 클래스를 생성하여 이를 수행할 수 있습니다.
@Component
public class Producer {
private static final Logger LOGGER = LoggerFactory.getLogger(Producer.class);
@Autowired
private KafkaTemplate<String, String> kafkaTemplate;
public void send(String topic, String message) {
LOGGER.info("sending message='{}' to topic='{}'", message, topic);
kafkaTemplate.send(topic, message);
}
}
위의 생산자에서 KafkaTemplate을 사용하여 Kafka 브로커에 메시지를 보냅니다.
이제 소비자를 만드는 방법을 살펴보겠습니다. Consumer 클래스를 생성하여 이를 수행할 수 있습니다.
@Component
public class Consumer {
private static final Logger LOGGER = LoggerFactory.getLogger(Consumer.class);
@KafkaListener(topics = "test", groupId = "test")
public void listen(String message) {
LOGGER.info("received message='{}'", message);
}
}
위의 소비자에서 @KafkaListener 주석을 사용하여 "테스트" 주제에 대한 메시지를 수신합니다.