본문 바로가기
Back Side/Kafka

[Kafka 시리즈] #2 Apache Kafka 공식 튜토리얼 따라하기 with KRaft

by developerBeluga 2023. 10. 12.
728x90
반응형

 

 

 

 

튜토리얼 따라하는게 국룰이죠

Apache Kafka에서도 쉽게 사용해볼 수 있는 튜토리얼을 제공해준다.

https://kafka.apache.org/quickstart

 

Apache Kafka

Apache Kafka: A Distributed Streaming Platform.

kafka.apache.org

 

튜토리얼을 따라하면 머리 속에 둥둥 떠나니던 개념들과 용어들을 금방 익힐 수 있어서 좋다 👍

그러니 꼭 튜토리얼 해보시길.

 

 

 

1. 카프카 다운로드

https://www.apache.org/dyn/closer.cgi?path=/kafka/3.6.0/kafka_2.13-3.6.0.tgz 

 

Apache Download Mirrors

<!-- This document is currently not in use, but should be kept in sync with https://www.apache.org/dyn/closer.html for future use --> We suggest the following location for your download: https://dlcdn.apache.org/kafka/3.6.0/kafka_2.13-3.6.0.tgz Alternate d

www.apache.org

위 사이트로 가서 카프카 다운로드를 하기 위한 링크를 한다.

 

 

// 다운로드
wget https://dlcdn.apache.org/kafka/3.6.0/kafka_2.13-3.6.0.tgz

// 압축 풀기
tar -xzf kafka_2.13-3.6.0.tgz

위 명령어를 차례대로 입력해주시고 해당 디렉터리로 이동해서 폴더가 있는지 확인해야한다.

 

 

 

brew install kafka

맥 유저의 경우 brew을 이용해 kafka를 손 쉽게 설치할 수 있다.

 

./bin/kafka-topics.sh --version

인제 버전을 확인해보자.

설치한 kafka_2.13-3.6.0 폴더로 가서 위 명령어를 입력한다.

 

The operation couldn’t be completed. Unable to locate a Java Runtime. Please visit http://www.java.com for information on installing Java. 이라는 문구가 나왔다.

 

공식문서에서도 자바가 설치되어져 있어야 한다고 나온다.

 

brew install --cask adoptopenjdk

이번에도 brew을 이용해서 설치해준다.

설치가 완료되었다면 java -version을 입력해 조회되니 확인한다.

 

 

 

./bin/kafka-topics.sh --version

인제 다시 카프카 버전을 조회한다.

 

아까와 달리 3.6.0이라는 버전이 나온다.

굳굳

 

 

 

 

2. KRaft로 서버 실행

// 클러스터 id 생성
KAFKA_CLUSTER_ID="$(bin/kafka-storage.sh random-uuid)"

// 로그 디렉터리 형식 지정
bin/kafka-storage.sh format -t $KAFKA_CLUSTER_ID -c config/kraft/server.properties

// 서버 실행
bin/kafka-server-start.sh config/kraft/server.properties

zookeeper가 아닌 kraft로 실행할 경우 위 명령어를 차례대로 입력한다.

 

 

마지막 서버 실행 명령어를 입력하여 위와 같이 Kafka Server started가 나와야 한다.

 

 

 

 

3. event를 저장할 topic 만들기

bin/kafka-topics.sh --create --topic quickstart-events --bootstrap-server localhost:9092

위 명령어를 이용해 topic을 만들어준다.

❗️ 이때 절대로 서버가 돌아가고 있는 터미널을 끄면 안된다 ❗️

 

새로운 터미널 하나 더 열어서 위 명령어를 입력하시면 잘 만들어졌다는 문구가 나온다.

 

bin/kafka-topics.sh --describe --topic quickstart-events --bootstrap-server localhost:9092

이 명령어를 통해서는 아래와 같이 topic에 대한 자세한 정보를 볼 수 있다.

 

새 topic의 파티션 수와 같은 세부 정보를 표시한다.

 

 

https://kafka.apache.org/documentation/#intro_concepts_and_terms

카프카 공식문서를 보다가 topic이랑 event 관계를 이해하기에 좋은 시각자료가 있어서 가져왔다.

이 자료를 보면 event는 각 topic에 들어가기 때문에 topic은 폴더라고 생각하고 event는 파일이라고 생각하면 좋을 것 같다.

 

이걸 메시지큐에 대입해보자면 프로듀서가 메시지(=event)을 큐(=topic)에 전달한다.

그리고 나중에 컨슈머들이 큐(=topic)에 담겨있는 메시지(=event)을 확인하다.

 

 

4. event 쓰고 읽기

bin/kafka-console-producer.sh --topic quickstart-events --bootstrap-server localhost:9092

위 명령어를 통해 원하는 대로 event를 쓸 수 있다.

그만 쓰고 있으면 ctrl + c로 종료해주면 된다.

 

 

bin/kafka-console-consumer.sh --topic quickstart-events --from-beginning --bootstrap-server localhost:9092

event가 읽어보니 잘 읽어왔다.

 

이걸로 기본적인 카프카 사용은 끝났다.

 

 

 

 

다음엔

로컬에서 카프카를 실행하고 테스트해봤다.

다음엔 Docker에서 실제 우리 회사 실 서비스들과 동작할 수 있도록 하자.

 

 

 

 

 

 

728x90
반응형

댓글