[Kafka] Kafka Topic CLI 튜토리얼

이재민·2024년 2월 15일
0

Kafka

목록 보기
11/17

Kafka Topic CLI

  • kafka-topic 는 Kafka에서 Topic create, delete, describe, topic 변경 등에서 사용됩니다.

Kafka Topic 생성법

  • Kafka Topic 생성시에는 필수 매개변수를 제공해야 합니다.
    • topic name, partition 수, replication factor
  • Kafka 2.2 버전 이상일 경우 Kafka Host, Port를 사용합니다.
    • ex) localhost:9092
  • Kafka 2.2 이전 버전의 경우 Zookeeper URL, Port를 사용합니다.
    • ex) localhost:2181
  • --create 옵션과 함께 kafka-topics.sh CLI를 사용합니다.

CLI 사용법

Kafka v2.2+

kafka-topics.sh --bootstrap-server localhost:9092 --topic first_topic --create --partitions 3 --replication-factor 1

Kafka v2.1이하

kafka-topics.sh --zookeeper localhost:2181 --topic first_topic --create --partitions 3 --replication-factor 1

output

WARNING: Due to limitations in metric names, topics with a period ('.') or underscore ('_') could collide. To avoid issues it is best to use either, but not both.
  • 위 경고창은 topic 이름에 밑줄, 마침표를 혼합하면 안된다는 의미입니다.

주의할 점

  1. 보유하고 있는 broker 수보다 큰 replication factor를 지정할 수는 없습니다.
  2. partition, replication factor는 기본값이 없으므로 이를 명시적으로 지정해야 합니다ㅣ.
  3. topic 이름에는 ASCII 영숫자, '.', '_', '-' 만 포함해야 합니다.

Kafka Topic 조회

CLI 사용법

Kafka v2.2+

kafka-topics.sh --bootstrap-server localhost:9092 --list

Kafka v2.1이하

kafka-topics.sh --bootstrap-server localhost:9092 --list

주의할 점

  1. __consumer_offsets topic이 조회됩니다. 해당 topic은 Kafka 시스템 내부적으로 생성되는 topic 이기에 삭제해서는 안됩니다. 위와 같이 내부적인 topic을 제외하고 보고 싶을 경우 옵션을 추가하면됩니다. --exclude-internal

Kafka Topic 설명

CLI 사용법

Kafka v2.2+

kafka-topics.sh --bootstrap-server localhost:9092 --describe --topic first_topic

Kafka v2.1이하

kafka-topics.sh --zookeeper localhost:2181 --describe --topic first_topic

Kafka Topic Partition 수 늘리기

  • 만약 Application이 key-based 순서에 의존하는 경우 Kafka Topic의 Partition 수를 늘리면 위험합니다.
    이 경우에는 새로운 topic을 생성하고 모든 데이터를 복사하여 키를 적절하게 배포하는게 낫습니다.

CLI 사용법

Kafka v2.2+

kafka-topics.sh --bootstrap-server localhost:9092 --alter --topic first_topic --partitions 5

Kafka v2.1이하

kafka-topics.sh --zookeeper localhost:2181 --alter --topic first_topic --partitions 5

주의할 점

  1. partition 수를 변경하면 key hashing 기술이 변경되므로 consumer가 key-based 순서를 사용하는 경우 해당 명령을 실행하는 것은 좋지 않습니다.

Kafka Topic 삭제 방법

Kafka broker가 topic 삭제를 허용하는지 확인하실 수 있습니다. delete.topic.enable=true(default)

CLI 사용법

Kafka v2.2+

kafka-topics.sh --bootstrap-server localhost:9092 --delete --topic first_topic

Kafka v2.1이하

kafka-topics.sh --zookeeper localhost:2181 --delete --topic first_topic

주의할 점

  1. topic 삭제가 활성화되지 않은 경우 명령어를 수행시, topic은 삭제 표시는 되지만 삭제되지 않습니다.
profile
문제 해결과 개선 과제를 수행하며 성장을 추구하는 것을 좋아합니다.

0개의 댓글