Bitnami Kafka 컨테이너에서 메시지를 프로듀스하는 방법
Kafka를 학습하거나 테스트할 때, Bitnami Kafka 컨테이너에 직접 접속하여 메시지를 프로듀스(produce)하는 방법은 매우 유용합니다. 아래는 이를 수행하는 단계별 가이드입니다.
1. Kafka 컨테이너에 접속
Bitnami Kafka 컨테이너에 접속하려면 다음 명령어를 사용합니다:
docker exec -it <컨테이너 이름> /bin/bash
컨테이너 이름을 모를 경우, 다음 명령어로 실행 중인 Kafka 컨테이너를 확인하세요:
docker ps
예시:
docker exec -it kafka-container /bin/bash
2. Kafka CLI 도구 사용
Kafka 컨테이너 내부에는 CLI 도구가 포함되어 있습니다. 이를 활용하여 메시지를 프로듀스할 수 있습니다.
2.1. Kafka CLI 위치
Bitnami Kafka 컨테이너에서 CLI는 보통 /opt/bitnami/kafka/bin
경로에 있습니다. 다음 명령어로 확인할 수 있습니다:
ls /opt/bitnami/kafka/bin
3. 메시지 프로듀스
kafka-console-producer.sh
스크립트를 사용하여 Kafka에 메시지를 전송합니다.
기본 명령어:
/opt/bitnami/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic <토픽 이름>
예시:
토픽 이름이 test-topic
이라면 다음과 같이 실행합니다:
/opt/bitnami/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test-topic
명령 실행 후 메시지를 입력한 뒤 Enter를 누르면 메시지가 전송됩니다.
>Hello Kafka
4. 키와 값을 함께 전송
Kafka 메시지에 키와 값을 함께 보내려면 --property parse.key=true
와 --property key.separator=<구분자>
옵션을 추가합니다.
예시:
/opt/bitnami/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test-topic --property parse.key=true --property key.separator=:
메시지 입력 시 키와 값을 :
로 구분하여 작성합니다:
key1:{"field":"value1"}
key2:{"field":"value2"}
5. JSON과 긴 메시지 전송
Kafka CLI를 통해 JSON 형태의 긴 메시지를 보낼 때, CLI 옵션으로 최대 메시지 크기를 설정해야 문제가 발생하지 않습니다.
CLI 메시지 크기 설정 예시:
/opt/bitnami/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test-topic --producer-property max.request.size=5242880
6. 테스트 및 확인
프로듀스한 메시지가 잘 전송되었는지 확인하려면 kafka-console-consumer.sh
를 사용하여 메시지를 읽을 수 있습니다.
메시지 확인 명령어:
/opt/bitnami/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test-topic --from-beginning
추가 참고
- Kafka CLI 도구 사용 시 브로커 주소(
localhost:9092
)는 Kafka 컨테이너 내부에서의 주소입니다. - Kafka 메시지가 잘리는 문제가 발생하면 브로커와 CLI의 메시지 크기 설정을 확인하세요.
반응형
'개발 (Development) > Kafka' 카테고리의 다른 글
[Kafka/Docker] Kafka 컨테이너에서 특정 Key의 메시지 500개 추출 및 저장하는 방법 (4) | 2025.08.03 |
---|---|
[Kafka] Linux 운영체제에서 Kafka 특정 Topic 메시지 확인 (0) | 2024.05.07 |
[Kafka] Linux 운영체제에서 Kafka Topic 리스트 확인 (0) | 2024.05.07 |
[Kafka] 오류: 기본 클래스 {경로명 일부}\kafka_2.13-2.8.0\libs\activation-1.1.1.jar;C:\{경로명 일부}을(를) 찾거나 로드할 수 없습니다. (0) | 2023.01.27 |