스프링 부트 애플리케이션을 위한 로컬 카프카 컨테이너 설정

오늘날의 마이크로서비스 및 이벤트 주도 아키텍처에서 Apache Kafka는 스트리밍 애플리케이션의 사실상 표준입니다. 그러나 Spring Boot 애플리케이션과 함께 로컬 개발을 위해 Kafka를 설정하는 것은 까다로울 수 있으며, 특히 로컬에서 실행하도록 구성할 때 더욱 그렇습니다.

Spring Boot 애플리케이션spring-kafka 메이븐 패키지를 통해 Kafka 통합을 지원합니다. spring-kafka와 작업하기 위해서는 Kafka 인스턴스에 연결해야 합니다. 일반적으로 개발 중에는 로컬 Kafka 인스턴스를 실행하고 이에 대해 빌드합니다. 그러나 Docker Desktop과 컨테이너를 사용하면 로컬 Kafka 인스턴스를 실행하는 것보다 훨씬 쉽게 설정할 수 있습니다. 이 기사에서는 Spring Boot 애플리케이션과 함께 로컬 Kafka 컨테이너를 설정하는 단계를 안내합니다.

사전 요구 사항

  1. Docker Desktop을 설정해야 합니다. 이를 위해 이 기사를 참조할 수 있습니다.
  2. spring-kafka 패키지가 구성된 Spring Boot 애플리케이션입니다.

Kafka 컨테이너 실행

Kafka 컨테이너를 실행하기 위해 먼저 다음 docker-compose 파일을 사용할 것입니다:

YAML

 

이 docker-compose 파일은 Kafka 컨테이너와 그 종속성인 Zookeeper 컨테이너를 끌어오기 위한 구성을 포함하고 있습니다. Zookeeper는 클러스터 내의 Kafka 브로커 노드를 관리합니다; 이에 대한 더 자세한 내용은 이 기사에서 확인할 수 있습니다.

컨테이너를 Docker Desktop에 등록하기 위해 다음 명령을 사용할 것입니다:

PowerShell

 

이는 필요한 이미지를 끌어오고 컨테이너를 시작하며, 컨테이너가 시작된 후에는 Docker Desktop에서 아래와 같이 컨테이너를 확인할 수 있습니다:

이제 Kafka 컨테이너가 실행 중이므로 Docker Desktop 콘솔을 사용하여 다음 명령을 사용하여 필요한 토픽을 생성할 수 있습니다:

PowerShell

 

이제 컨테이너가 실행 중이고 필요한 전제 조건이 완료되었으므로 Spring Boot 애플리케이션을 시작할 수 있습니다. Spring Boot 애플리케이션의 경우 Kafka 부트스트랩 주소를 아래와 같이 구성하십시오:

Properties files

 

Spring Boot 애플리케이션을 시작하면, Spring Boot 애플리케이션이 프로듀서인지 소비자인지에 따라 Kafka와의 연결에 대한 로그를 확인해야 합니다.

기사에 설명된 단계를 따라 Kafka 컨테이너와 Spring Boot 애플리케이션을 사용한 로컬 개발 환경을 설정했습니다.

Source:
https://dzone.com/articles/setting-up-local-kafka-container-for-spring-boot-application