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