Kafka CLI 기본

2025. 6. 19. 00:31·Back-end

스프링에서 카프카 찍먹해봤다가 cli로 kafka 다루려니까 헷갈림

Kafka는 대용량의 메시지를 빠르게 처리하고, 실시간 스트리밍 시스템에 자주 쓰이는 분산 메시지 큐

 

  • 데이터를 ‘토픽(Topic)’이라는 논리적 단위로 관리
  • 생산자(Producer)가 메시지를 보내고, 소비자(Consumer)가 메시지를 읽음

 

 

kafka-topics.sh 명령어 : 토픽 생성, 삭제, 조회

토픽 생성하기 (my-topic이라는 이름으로 파티션 3개, 복제본 1개 생성)

docker compose exec kafka1 \
kafka-topics.sh --create --topic \
my-topic --bootstrap-server localhost:19092 \
replication-factor 1 partitions 3 \
partition 1

 

kafka-console-consumer.sh 명령어 : 메시지 소비자(Consumer) 역할

--from-beginning 옵션은 토픽 처음부터 메시지 모두 읽기

실행 후, 생산자가 보내는 메시지를 실시간으로 확인 가능.

docker compose exec kafka1 \
kafka-console-consumer.sh \
--bootstrap-server localhost:19092 \
--topic my-topic \
--from-beginning

 

kafka-console-producer.sh 명령어 : 메시지 생산자(Producer) 역할

docker compose exec kafka1 \
kafka-console-producer.sh \
--bootstrap-server localhost:19092 \
--topic my-topic

 

producer 실행

 

consumer 실행 결과

 

key:value 형태로 담기

docker compose exec kafka1 \
kafka-console-producer.sh \
--bootstrap-server localhost:19092 \
--topic my-topic2 --property="parse.key=true" \
--property="key.separator=:"

 

key가 필요한 이유 => 파티셔닝 때문 (순서 보장)

 

partition1에 대해서만 컨슘해보자

docker compose exec kafka1 \
kafka-console-consumer.sh \
--bootstrap-server localhost:19092 \
--topic my-topic2 \
--from-beginning \
--partition 1

 

3개의 값만 들어온 것을 확인, 나머지 값은 partition2,3에 나눠져서 들어감

 

이때 key 4,6,10의 값은 무조건 partition1에 들어간다. (comsumer는 배정받은 파티션만 읽음)

 

key 4에 대해 다른 값을 produce하면

 

partition1에서 그대로 comsume 하는 것을 확인!

 

'Back-end' 카테고리의 다른 글

[Docker] MySQL 포트 충돌 에러 해결 방법  (0) 2025.06.18
Spring Security에서 RedisSerializer를 사용하면 생기는 문제점  (0) 2024.08.20
JWT secret key 생성 방법  (0) 2024.07.27
'Back-end' 카테고리의 다른 글
  • [Docker] MySQL 포트 충돌 에러 해결 방법
  • Spring Security에서 RedisSerializer를 사용하면 생기는 문제점
  • JWT secret key 생성 방법
dev_ajrqkq
dev_ajrqkq
알고리즘 천재가 될 거야
  • dev_ajrqkq
    기록이 자산이다
    dev_ajrqkq
  • 전체
    오늘
    어제
    • 분류 전체보기 (157) N
      • Front-end (0)
      • Back-end (4)
        • Spring (1)
        • Java (8)
      • CS (9)
        • 데이터베이스 (5)
        • 네트워크 (4)
      • Algorithm (86) N
      • 이것저것 (0)
      • 버그잡기 (1)
      • TIL (37)
      • 후기 (3)
      • 취준 (0)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      습관형성
      Til
      티스토리챌린지
      패스트캠퍼스후기
      오블완
      TypeScript
      오공완
      환급챌린지
      99클럽
      직장인자기계발
      패스트캠퍼스
      개발자취업
      코딩테스트준비
      항해99
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.2
    dev_ajrqkq
    Kafka CLI 기본
    상단으로

    티스토리툴바