작성일: 2026년 5월 4일

1. 개요

Sofly 백엔드에서 Kafka는 도메인 이벤트를 비동기로 여러 처리 흐름에 전파하기 위해 사용됩니다.

현재 두 가지 토픽이 운영 중입니다.

각 Consumer는 별도 group ID를 가지므로 서로 영향을 주지 않습니다.

현재 Kafka 사용 범위는 travel-core-service 단독입니다. travel-supply-service는 Kafka를 사용하지 않습니다.

2. 인프라

2.1 Kafka 버전

항목 값
이미지 confluentinc/cp-kafka:7.6.0
모드 KRaft (ZooKeeper 없음)
노드 구성 단일 노드 (broker + controller)
로그 보존 24시간
힙 메모리 256MB ~ 384MB

2.2 로컬 개발

# local-infra/docker-compose.kafka.yml
docker compose -f local-infra/docker-compose.kafka.yml up -d
컨테이너 포트 용도
sofly-kafka 9092 (외부), 29092 (내부) Kafka 브로커
sofly-kafka-ui 8989 Kafka UI (provectuslabs/kafka-ui)

Kafka UI: http://localhost:8989

2.3 프로덕션

# docker-compose.kafka.yml
docker compose -f docker-compose.kafka.yml up -d

프로덕션에서는 PLAINTEXT://sofly-kafka:9092로 advertise되며, sofly-net 네트워크를 통해 core-service와 통신합니다. Kafka UI는 포함되지 않습니다.

3. Spring 설정

3.1 application-core.yaml