개요 강의를 보다가 Mac OS 기준으로만 설명된 영상이 있어, Kafka를 Windows 환경에서 설치하고 간단한 테스트를 통해 실행이 잘 되는지 확인해보려 한다. 사전 준비 (Java 설치 및 환경 변수 설정) Kafka는 Java 기반으로 동작하기 때문에, Ja
✅목표 Kafka와 Spring Boot를 연동하여 JSON 형식의 메시지를 안전하게 송수신하는 구조를 구현해보자. Kafka 환경 구성 (docker-compose.yml) Kafka는 메시지를 처리하는 핵심 브로커이고 Zookeeper는 Kafka의 메타데이터(
Kafka Streams는 Kafka에서 들어오는 데이터를 실시간으로 처리하고 다시 Kafka로 내보낼 수 있는 Java 기반의 스트림 처리 라이브러리이다. 기존 Kafka Consumer는 단순히 메시지를 소비하기만 했다면 Kafka Streams는 데이터를 계속 흐
KafkaConfig Kafka Producer/Consumer 설정을 Bean으로 등록하는 설정 클래스이다. Config의 설명은 블로그에서 확인해주길 바란다. KafkaStreamsConfig @EnableKafkaStreams : Spring Kafka에서
Dead Letter Queue(DLQ)는 정상적으로 처리할 수 없는 메시지를 따로 저장하는 큐를 말한다. 메시지 소비(Consumer) 중 오류가 발생하거나 재시도(retry)를 여러 번 해도 실패하는 경우 해당 메시지를 버리지 않고 DLQ에 적재한다. 주로 장애 확
⚠️ 문제 상황 기존에는 Kafka 메시지를 전송하기 위해 CouponIssueProducer 내부에 쿠폰 발급 전용 전송 로직이 하드코딩되어 있었다. 이 방식은 특정 이벤트에만 고정되어 있어, 다른 이벤트(DLQ, 실패 이벤트 등)를 전송하려면 매번 새로운 메서드를
⚠️ 문제 상황 Kafka를 통해 쿠폰 발급 성공 이벤트만 전송하고 있었는데 DB 저장 실패 등의 예외가 발생해도 로그만 남기고 메시지가 유실되는 문제가 있었다. Kafka Consumer에서 예외가 발생하면 메시지가 무한 재시도되거나 손실될 수 있었고 개발 환경에서는