[Kafka] 카프카 실행, 토픽 생성, 메시지 테스트

2020. 5. 24. 17:13Computer Science/Backend

Flafka(Flume + Kafka)를 구성하기 위한 카프카 테스트


(mac 기준)

KAFKA 실행

Flume에서 데이터를 보내기 위해 알맞은 kafka 토픽을 생성해야 된다. zookeeper가 kafka의 노드를 관리하기 때문에 zookeeper부터 실행시켜보자. cf) 주키퍼랑 카프카는 모두 homebrew로 설치했고, HOME PATH 설정을 마쳤다.

 

property 경로는 아래를 참고하면 된다.

# zookeeper config PATH
$KAFKA_HOME/conf/zookeeper.properties

# kafka config PATH
$KAFKA_HOME/conf/server.properties

KAFKA_HOME 같은 경우는 본인이 카프카를 설치한 경로로 bash에 저장해주자. mac같은 경우는 ~/버전/libexec까지 HOME에 넣어준다. 

 

주키퍼와 카프카 실행 명령은 아래와 같다. zookeeper-server-start.shzookeeper.properties를 실행시켜준다. 백엔드에서 실행시키기 위해 -daemon 파라미터값도 꼭 추가해주자. kafka도 마찬가지로 -daemon 파라미터를 추가해준다.

주키퍼, 카프카 실행 완료

 

카프카 토픽 생성

이 전에 테스트를 위해 생성해뒀던 토픽이 있을 것 같아서 list부터 출력해봤다.

역시나 있었고.. topic 삭제 명령어로 삭제를 시도했으나

 

설정으로 돌아가서 delete.topic.enable 값을 true로 바꿔주라는 뜻이다.

$KAFKA_HOME/bin/conf/server.properties

delete.topic.enable=true #추가

아무리 topic delete를 시도해도 파티션이 남아있는 것 같다. 토픽 생성 할 때는 신중히 하자.

 

개인적으로 Flafka (Flume + Kafka)를 구현하기 위한 카프가 실행이기 때문에, Flume configuration에 카프카 토픽명이 clicklog라고 되어 있는 것을 감안해서 clicklog라는 토픽을 생성한다. 테스트니까 파티션은 1개만 생성.

 

clicklog 토픽 생성 완료

 

producer, send message, consumer

카프카에서 기본적으로 제공하는 콘솔 producer로 위에 생성한 토픽(clicklog)에 메시지를 전송하고 consumer로 메시지를 받아와 봤다.

 

메시지 내용

  • I'm Socrates.
  • (null, 걍 빈칸)
  • yas

 

음, 3개의 메시지가 잘 들어간 것 같다.

 

Ref. Apache Kafka Quickstart