전체 그래프
Kafka

Kafka Topic

data-engineeringtool/kafkaconcept/topic

상위: Kafka

요약

Topic은 Kafka에서 메시지를 저장하는 논리적 단위입니다. 파일 시스템의 폴더나 데이터베이스의 테이블과 유사한 개념으로, 메시지를 분류하고 조직화하는 역할을 합니다.

Topic의 특징

논리적 메시지 그룹

  • 특정 유형의 메시지를 저장하는 카테고리
  • 예: user-events, order-logs, sensor-data
  • Producer는 Topic에 메시지를 전송
  • Consumer는 Topic에서 메시지를 구독

파티션으로 구성

  • 하나의 Topic은 여러 Partition으로 나뉨
  • 파티션을 통해 병렬 처리 및 확장성 확보
  • 각 파티션은 순서가 보장되는 메시지 시퀀스

Kafka Topic

Topic 관리

Topic 생성

kafka-topics.sh --create --topic my-topic \
--partitions 3 --replication-factor 2 \
--bootstrap-server localhost:9092

Topic 조회

# 전체 Topic 목록
kafka-topics.sh --list --bootstrap-server localhost:9092

# Topic 상세 정보
kafka-topics.sh --describe --topic my-topic \
--bootstrap-server localhost:9092

Topic 설정 변경

# 파티션  증가 (축소는 불가)
kafka-topics.sh --alter --topic my-topic \
--partitions 6 --bootstrap-server localhost:9092

주요 설정

설정설명기본값
num.partitions파티션 수1
replication.factor복제본 수1
retention.ms메시지 보관 시간7일
segment.bytes세그먼트 파일 크기1GB

주의사항

  • 파티션 수는 증가만 가능, 감소 불가
  • Replication Factor는 생성 시 결정, 변경 시 재할당 필요
  • Topic 이름은 변경 불가, 새로 생성 후 마이그레이션 필요