해당 프로젝트는 스프링 부트 환경에서 Kafka를 활용해 비동기 프로그래밍을 구현한 애플리케이션입니다.
아래 개발 가이드에서는 프로젝트 설정, Docker Compose를 통한 환경 구축 방법, 테스트 방법을 안내합니다.
todo
spring:
kafka:
bootstrap-servers: ${SPRING_KAFKA_BOOTSTRAP_SERVERS:localhost:9092}
consumer:
group-id: my-group
auto-offset-reset: earliest
key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
producer:
key-serializer: org.apache.kafka.common.serialization.StringSerializer
value-serializer: org.apache.kafka.common.serialization.StringSerializer
bootstrap-servers
: Kafka 서버 주소. Spring Boot에서 Kafka와 통신할 수 있도록 합니다.consumer.group-id
: 같은 Consumer 그룹에 속하는 모든 Consumer는 동일한 메시지를 수신하지 않도록 조정됩니다.auto-offset-reset
: 오프셋이 없을 때 메시지를 어디서부터 읽어올지 결정합니다.earliest
,latest
가 대표적인 옵션입니다.producer.key-serializer / value-serializer
: Producer가 메시지를 Kafka에 보낼 때 키와 값을 직렬화하는 방식입니다. 기본적으로StringSerializer
를 사용합니다.consumer.key-deserializer / value-deserializer
: Consumer가 Kafka에서 메시지를 수신할 때 키와 값을 역직렬화하는 방식입니다. 기본적으로StringDeserializer
를 사용합니다.
이 프로젝트는
docker-compose
를 사용하여 필요한 개발 환경을 구성할 수 있습니다.
IntelliJ에서docker-compose
로 실행 환경을 구성하는 방법은 다음과 같습니다.
File > Settings > Plugins
에서 Docker 플러그인 설치
File > Settings > Build, Execution, Deployment
에서 설치한 Docker 추가
Run/Debug Configuration
에서 Docker 환경 추가 후 Compose Files
에 ./docker-compose.yml
설정
Modify Option
클릭 후 Build > always
옵션 추가
todo
/kafka-topics --bootstrap-server localhost:9092 --list
./kafka-console-consumer --bootstrap-server localhost:9092 --topic {토픽명} --from-beginning