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
끝
아직 공부해야할 것이 많다.