Kafka 시작하기

Step 1: Zookeeper 실행

bin/zookeeper-server-start.sh [-daemon] config/zookeeper.properties

Step 2: 서버 실행

producer와 consumer를 중계할 broker를 만든다.

bin/kafka-server-start.sh [-daemon] config/server.properties
  • 서버 정지
    bin/kafka-server-stop.sh
    

Step 3: topic 생성

* ‘–zookeeper’ 옵션은 deprecated 되었으니 최신 글을 참고바랍니다.

bin/kafka-topics.sh --create \
--zookeeper host02:2181 \
--replication-factor 1 \
--partitions 1 \
--topic TOPIC_NAME
  • topic 생성 확인 / 목록
      bin/kafka-topics.sh --list --zookeeper host02
    
  • zookeeper에서 확인하는 방법
      bin/zookeeper-shell.sh ls host02:2181 /brokers/topics
    

Step 4: producer 생성

bin/kafka-console-producer.sh \
--broker-list host01:9092 \
--topic TOPIC_NAME

Step 5: consumer 생성

bin/kafka-console-consumer.sh \
--bootstrap-server host01:9092 \
--topic TOPIC_NAME \
--from-beginning

- topic 삭제 관련

bin/kafka-topics.sh --delete --zookeeper host02:2181 --topic TOPIC_NAME

topic list를 확인하여 보면

bin/kafka-topics.sh --list --zookeeper host02

TOPIC_NAME - marked for deletion

“marked for deletion”이란 것이 박혀 있다.
기분이 그냥 안 좋다.
지워졌다 생각하고.. 같은 이름의 topic을 생성하면

bin/kafka-topics.sh --create \
--zookeeper host02:2181 \
--replication-factor 1 \
--partitions 1 \
--topic TOPIC_NAME

Topic 'TOPIC_NAME' already exists.

이미 있다고 나온다. 기분이 나쁘다.

위에서 한 번 본 zookeeper에서 topic list를 확인해 보면

bin/zookeeper-shell.sh host02:2181 ls /brokers/topics

남아 있다. 일단 지워보자.

bin/zookeeper-shell.sh host02:2181 rmr /brokers/topics/TOPIC_NAME

번거롭다. 방법이 있다.

서버 먼저 정지시키고
bin/kafka-server-stop.sh

config/server.properties 파일 안에

delete.topics.enable=true 를 추가

서버 다시 살리면 된다.
bin/kafka-server-start.sh -daemon config/server.properties

끝

아직 공부해야할 것이 많다.

Categories:

Updated: