[Kafka] Producing messages inside a docker container(bitnami/kafka)

2024. 12. 15. 03:35·개발 (Development)/Kafka

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
'개발 (Development)/Kafka' 카테고리의 다른 글
  • [Kafka/Docker] Kafka 컨테이너에서 특정 Key의 메시지 500개 추출 및 저장하는 방법
  • [Kafka] Linux 운영체제에서 Kafka 특정 Topic 메시지 확인
  • [Kafka] Linux 운영체제에서 Kafka Topic 리스트 확인
  • [Kafka] 오류: 기본 클래스 {경로명 일부}\kafka_2.13-2.8.0\libs\activation-1.1.1.jar;C:\{경로명 일부}을(를) 찾거나 로드할 수 없습니다.
LoopThinker
LoopThinker
모르는 것을 알아가고, 아는 것을 더 깊게 파고드는 공간
  • LoopThinker
    CodeMemoir
    LoopThinker
  • 전체
    오늘
    어제
    • 분류 전체보기 (231)
      • 개발 (Development) (165)
        • Algorithm (1)
        • Angular (1)
        • AWS (6)
        • DeepSeek (2)
        • Docker (7)
        • Git (3)
        • Java (34)
        • JavaScript (4)
        • Kafka (5)
        • Kubernetes (4)
        • Linux (7)
        • PostgreSQL (38)
        • Python (31)
        • React (3)
        • TypeScript (3)
        • Vue.js (5)
        • General (11)
      • 데이터 분석 (Data Analysis) (1)
      • 알고리즘 문제 풀이 (Problem Solving.. (27)
      • 자격증 (Certifications) (24)
        • ADsP (14)
        • 정보처리기사 (4)
        • Linux Master (5)
        • SQLD (1)
      • 기술 동향 (Tech Trends) (11)
      • 기타 (Others) (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    ADsP
    AWS
    timescaledb
    DevOps
    Spring boot
    Kubernetes
    PostgreSQL
    Kafka
    javascript
    백준
    백준온라인저지
    데이터분석
    pandas
    JPA
    deepseek
    springboot
    백준알고리즘
    java
    자바
    JSON
    백준자바
    리눅스 마스터 2급
    Linux master
    python
    Linux
    docker
    오답노트
    리눅스 마스터 2급 2차
    MyBatis
    Vue.js
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
LoopThinker
[Kafka] Producing messages inside a docker container(bitnami/kafka)
상단으로

티스토리툴바