에러 로그
[2024-03-06 17:19:16.146][vista-service][WINDOWS-TEIB042][reactive-kafka-StreamingEngine-1][WARN][NetworkClient.java-handleServerDisconnect:1065] - [Consumer clientId=consumer-StreamingEngine-1, groupId=StreamingEngine] Bootstrap broker 10.0.2.15:9092 (id: -1 rack: null) disconnected
가상환경에서 kafka 정상 작동 확인 후 springboot와 연동을 시도했는데 위의 에러 로그가 발생함.
🎶 Kafka 브로커 설정:
Kafka의 server.properties 파일에서 listeners 및 advertised.listeners 설정 확인해야함.
listeners
advertised.listeners
호스트 OS의 springboot consumer와 연결해야하기 때문에 advertised.listeners를 수정해야했다.
🎶 수정 방법 :
Docker를 사용하여 Kafka를 실행하는 경우, advertised.listeners와 같은 Kafka 설정은 보통 Docker 실행 명령이나 Docker Compose 파일에서 환경 변수를 통해 설정됩니다. Docker 컨테이너 내부에서 Kafka의 server.properties(kafka.properties) 파일을 직접 수정하는 것은 권장되지 않습니다. 컨테이너가 재시작되면 이러한 변경사항이 사라질 수 있기 때문입니다.
Docker Compose를 사용하는 경우, docker-compose.yml 파일 내에서 Kafka 서비스의 환경 설정 부분에 이를 추가할 수 있습니다.
services:
kafka:
image: kafka-image-name
environment:
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:29092,PLAINTEXT_HOST://localhost:9092
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
위의 [호스트의 IP 주소] 부분은 Kafka가 실행되고 있는 호스트 또는 가상 머신의 IP 주소로 대체해야 합니다. 이렇게 설정하면, Docker 컨테이너가 시작될 때 Kafka 구성이 해당 환경 변수에 따라 자동으로 설정됩니다. -> PLAINTEXT_HOST://localhost:9092로 변경함 (PLAINTEXT://kafka:29092 : 도커 컨테이너 간 통신 설정은 그대로 kafka 유지)