반응형
    
    
    
  
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 |