본문 바로가기

서버개발스터디/2주차 (Kafka)

#02 Kafka 설치 & Zookeeper 실행 ( window 10 )

들어가기 전 

Kafka를 대부분 docker에 설치해서 사용을 한다고 하는데 이번 포스팅과 실습은 windows10 에 직접 설치하고 command를 이용해서 Producer & Consumer 테스트를 할 예정이다. 

본 포스팅은 서버스터디 장 승민님이 작성한 글을 바탕으로 테스트 후 작성했다.

 

https://manglog.tistory.com/89

 

[20210516] Windows에 Kafka 설치하기

Kafka는 Docker에 설치하거나 Windows에 바로 설치할 수 있다. Docker에 설치하려면 Docker도 설치가 되어 있어야 하고, Docker는 윈도우pro 버전 이상, Mac os에서 사용가능하다. 현재는 Mac을 사용할 수 없는

manglog.tistory.com

Index

  • Kafka 다운로드 및 설치
  • Zookeeper / Kafka 실행
  • command 활용 Producer & Consumer 테스트 

Kafka 다운로드 및 설치 

1. Kafka 공식 홈으로 이동한다 > https://kafka.apache.org/downloads

2. 현재기준 최신 버전 2.8.0의 Binary downloads 에서 Scala 2.12 -kafka_2.12-2.8.0.tgz(asc,sha512) 를 다운로드 받는다.

 

Kafka 다운로드

3. command로 다운로드 받은 곳에 들어가서 압축 파일을 풀어준다. 

다운받은 Kafka 경로 : D:\kafka 

다운받은 Kafka 파일명 : kafka_2.12-2.8.0.tgz

압축풀기 : tar -xzf kafka_2.12-2.8.0.tgz   

 

Zookeeper / Kafka 실행

 

1. Zookeeper 실행

- 다운받은 Kafka 경로 : D:\kafka 

- zookeeper-server-start.bat : zookeeper 실행에 사용 (내경로 - D:\kafka\kafka_2.12-2.8.0\bin\windows)

- zookeeper.properties : zookeeper 실행에 사용 (내경로 - D:\kafka\kafka_2.12-2.8.0\config)

- command로 압축을 푼 경로 (본인:D:\kafka\kafka_2.12-2.8.0) 에 들어가서 

.\bin\windows\zookeeper-server-start.bat .\config\zookeeper.properties  입력

 

zookeeper 실행

 

2. Kafka 실행

- 다운받은 Kafka 경로 : D:\kafka 

- kafka-server-start.bat : Kafka 실행에 사용 (내경로 - D:\kafka\kafka_2.12-2.8.0\bin\windows)

- server.properties : Kafka 실행에 사용 (내경로 - D:\kafka\kafka_2.12-2.8.0\config)

- command로 로 압축을 푼 경로 (본인:D:\kafka\kafka_2.12-2.8.0) 에 들어가서

.\bin\windows\kafka-server-start.bat .\config\server.properties 입력

 

KafkaServer 가 시작되고 zookeeper 와 연결된게 보인다.

 

command 활용 Producer & Consumer 테스트 

아래 파일들 경로 D:\kafka\kafka_2.12-2.8.0\bin\windows

- kafka-topics.bat : 토픽을 생성할 때 사용 

- kafka-console-producer.bat : command로 producer 를 올릴 때 사용

- kafka-console-consumer.bat : command로 consumer 를 올릴 때 사용

 

1. Topic생성하기 

- 위에 적어놓은 경로(D:\kafka\kafka_2.12-2.8.0\bin\windows)에 command로 들어간다.

- kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic [topicName]

를 실행하면 Topic이 생성된다 (topicName은 원하는 이름 지정)

 

Topic 생성

 

2. Producer 실행 (Kafka서버의 Topic 에 메세지 전달을 하는 역할)

- 위에 적어놓은 경로(D:\kafka\kafka_2.12-2.8.0\bin\windows)에 command로 들어간다.

- kafka-console-producer.bat --broker-list localhost:9092 --topic [topicName]

를 실행하면 지정한 Topic에 메세지를 전달 할 Producer가 생성된다. (topicName은 1번에서 생성한 이름으로 넣는다.)

 

Producer 실행

 

3. Consumer 실행

- 위에 적어놓은 경로(D:\kafka\kafka_2.12-2.8.0\bin\windows)에 command로 들어간다.

- kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic [topicName]

를 실행하면 Topic이 생성된다 (topicName은 1번에서 생성한 이름으로 넣는다.)

 

consumer 실행

 

4. 메세지 전송

 

Producer를 이용해서 메세지를 Kafka로 전송하고 Consumer는 해당 Topic에서 메세지를 받아온다.

 

 

Producer 가 Kafka서버의 Topic에 메세지 전달
Consumer 가 구독중이던 Topic의 메시지를 출력

 

 

마무리 

1. Zookeeper 와  Kafka서버를 띄우고

2. 서버에 Topic을 생성

3. Consumer로 생성한 Topic을 구독

4. Producer로 생성한 Topic에 메세지 전달

5. Consumer는 구독중이던 Topic에 메세지가 있는 걸 확인하고 읽어서 출력한다.

 

이렇게 정말로 간단하게 Kafka를 이용해서 메세지 전달을 수행해 봤다.

이런 간단한 메세지 전달은 Kafka말고도 rabbitmq 등등 많다고 하는데 다른점이 하나 있다고 한다.

Kafka는 전달된 메세지를 삭제하지 않고 서버에서 기록하여 사용 가능하다고 하고 이를 기반으로 

복구에도 사용하고 MSA에도 많이 사용을 한다고 한다. 

Kafka에 대해서는 책을사서 추후 포스팅을 꼭 해봐야 겠다. !! 

 

이제 우리가 자주 사용하는 Spring boot를 이용해서 어떻게 메세지를 주고받는 Producer와 Consumer를 설정하고 데이터를 송수신 하는지 실습을 할 예정이다.

 

 

'서버개발스터디 > 2주차 (Kafka)' 카테고리의 다른 글

#03 Spring boot & Kafka 연동하기  (0) 2021.05.19
#01 Kafka / Zookeeper 알아보기  (0) 2021.05.17