본문 바로가기
미들웨어/Kafka

Kafka 기본 개념과 싱글 브로커 실습

by _Nate 2025. 7. 13.
반응형

Kafka 기본개념 및 싱글 브로커 실습 정리


1. Kafka란 무엇인가?

  • Kafka는 대용량의 실시간 데이터 스트리밍을 처리하는 분산 메시징 시스템입니다.
    수많은 서비스와 애플리케이션이 데이터를 주고받을 때 중간에서 데이터를 안정적으로 저장하고 전달하는 역할을 합니다.
    (예 : 이커머스 플랫폼에서는 주문, 결제, 알림 등의 이벤트를 실시간으로 처리할 때 Kafka를 활용합니다.)

 

  • Kafka의 핵심 용어 정리
    • Producer: 데이터를 Kafka로 보내는 주체
    • Consumer: Kafka에서 데이터를 읽어가는 주체
    • Topic: 메시지를 저장하는 논리적 단위
    • Partition: Topic을 분할한 단위, 데이터 분산과 병렬 처리에 활용
    • Offset: Partition 내 메시지의 위치 인덱스

2. Kafka 싱글 브로커 실습

  • 간단한 실습을 위해 docker환경에 Kafka, Zookeeper 구성
  • docker-compose.yml
version: '3.8'

services:
  zookeeper:
    image: bitnami/zookeeper:3.9
    container_name: zookeeper
    environment:
      - ALLOW_ANONYMOUS_LOGIN=yes
    ports:
      - "2181:2181"

  kafka:
    image: bitnami/kafka:3.7
    container_name: kafka
    environment:
      - KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181
      - KAFKA_CFG_LISTENERS=PLAINTEXT://:9092
      - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092
      - ALLOW_PLAINTEXT_LISTENER=yes
    ports:
      - "9092:9092"
    depends_on:
      - zookeeper

 

  • test-topic 생성
$ docker exec -ti kafka kafka-topics.sh --create --topic test-topic --partitions 3 --replication-factor 1 --bootstrap-server kafka:9092
Created topic test-topic.

$ docker exec -ti kafka kafka-topics.sh --list --bootstrap-server kafka:9092
test-topic

$ docker exec -ti kafka kafka-topics.sh --describe --topic test-topic --bootstrap-server kafka:9092
Topic: test-topic       TopicId: 4q8qr9TBSg-qQ1452TAKdA PartitionCount: 3       ReplicationFactor: 1    Configs:
        Topic: test-topic       Partition: 0    Leader: 1001    Replicas: 1001  Isr: 1001
        Topic: test-topic       Partition: 1    Leader: 1001    Replicas: 1001  Isr: 1001
        Topic: test-topic       Partition: 2    Leader: 1001    Replicas: 1001  Isr: 1001

 

  • test-topic 에 메시지 입력
$ docker exec -ti kafka kafka-console-producer.sh --topic test-topic --bootstrap-server kafka:9092
>msg-1
>msg-2
>msg-3
>msg-4

 

  • test-topic에서 메시지 출력
$ docker exec -ti kafka kafka-console-consumer.sh --topic test-topic --from-beginning --bootstrap-server kafka:9092
msg-1
msg-2
msg-3
msg-4

 

반응형

'미들웨어 > Kafka' 카테고리의 다른 글

Kafka partition에 message저장 방식  (0) 2023.03.18
Kafka cluster 구성 및 failover 테스트  (0) 2023.03.17
Kafka 설치 및 간단 사용법  (0) 2023.03.16