본문 바로가기

Kafka

Kafka 초기설정

kafka 용어

Broker 는 kafka 의 서버를 뜻하며 동일노드에 여러개의 Broker 를 띄울수 있다.
이렇게 여러개의 Broker 가 띄워져 분산되어 있으며 이 분산 Message Queue 를 관리해주는것이 Zookeeper 이다 .

서버를 띄우기 앞서 반드시 Zookeeper 를 띄워야한다.

kafka를 다운로드하고 실행해보자

    다운로드 링크 : https://kafka.apache.org/downloads    

Binary 파일을 다운로드한후 압축 해제

    kafka 폴더 > bin > windows 경로로 이동 

앞서 말했듯 zookeeper 를 먼저 실행해야한다 .
cmd 창을 열고

    .\zookeeper-server-start.bat ..\..\config\zookeeper.properties

zookeeper.bat 파일을 실행하는데 config 폴더에있는 zookeeper.properties 를 참조한다

정상적으로 실행이 되었다면 이런 로그를 볼수 있다.

여기서 발생할수있는 오류들을 알아보자

java version 오류

java.lang.ClassNotFoundException: org.apache.zookeeper.server.quorum.QuorumPeerMain

실행시 이러한 오류가 발생한다면 jdk 버전의 문제이므로 현재 설치되어있는 jdk 와 호환되는 kafka 버전을 새롭게 다운로드 하는것이 좋다.

알맞은 버전을 설치하였는데도 실행시 문장이 너무 길다는 오류가 발생되면 kafka 폴더를 root 에서 가까운쪽으로 이동한후 실행하면 해결된다.

이제 kafka 를 실행해보자.

.\kafka-server-start.bat ..\..\config\server.properties

kafka-server-start.bat 를 실행하면서 config에있는 server.properties를 참조해주면 된다.

이러한 로그가 보인다면 잘실행이 된것이지만
추가로 확인할수있는 방법이 있다.

커맨드 창에서 netstat -a -o 를 입력하면

현재 연결되어있는 포트를 확인할수있는데

zookeeper 는 기본포트가 2181
kafka 는 기본포트가 9092 이다

포트 변경은 실행시 참조했던 properties 파일에서 변경할수있다.

1. topic 을 생성하고 message 전송을 해보자
토픽 생성
kafka\bin\window 경로에서

.\kafka-topics.bat --create --bootstrap-server localhost:9092 --topic {topicName}

을 실행하면
Created topic {topicName} 이라는 메시지가 나온다

kafka 를 실행했던 커맨드 창에서도 로그를 확인할수 있다

2. 메시지를 pub-sub 해보자

.\kafka-console-producer.bat  --broker-list  localhost:9092 --topic {topicName}

을 입력하면 커맨드창이 CLI 형식으로 변경된다
여기서 메시지를 입력할수 있다.

message를 consum 방법은

.\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic woolra --from-beginning

를 실행하면 지금까지 보냈던 message Queue가 한번에 들어오게된다

consumer 를 열어둔채로 보내게되면 실시간으로 전송받을 수 있다.

오늘은 여기까지!