Post

Chapter 02(1). 카프카 설치하기(WSL 🐧)

1. WSL 설치


2. Java 설치 및 확인

  • OpenJDK 설치
1
sudo apt update && sudo apt install openjdk-17-jdk
  • Java 버전 확인
1
java -version

3. 작업 디렉토리 생성

  • home/<user> 경로 아래 디렉토리 생성
1
mkdir -p ~/.local/tmp

4. Zookeeper 설치

  • ~/.local/tmp 경로로 이동
1
cd ~/.local/tmp
  • 아래 명령어 실행
1
2
wget https://dlcdn.apache.org/zookeeper/zookeeper-3.9.3/apache-zookeeper-3.9.3-bin.tar.gz
tar -xvzf apache-zookeeper-3.9.3-bin.tar.gz
  • 압축 해제한 폴더를 .local로 이동 후 이름 변경
1
mv apache-zookeeper-3.9.3-bin ~/.local/zookeeper

5. Kafka 설치

  • Kafka 3.9.0 다운로드 및 압축 해제
1
2
wget https://dlcdn.apache.org/kafka/3.9.0/kafka_2.12-3.9.0.tgz
tar -xvzf kafka_2.12-3.9.0.tgz
  • 압축 해제한 폴더를 .local로 이동 후 이름 변경
1
mv kafka_2.12-3.9.0 ~/.local/kafka

6. Zookeeper 실행

  • Zookeeper 실행
1
2
cd ~/.local/zookeeper/bin
./zkServer.sh start

zookeeper


7. Kafka 브로커 실행 스크립트 작성

  • .local 아래에 start_kafka_broker.sh 파일 생성
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#!/bin/bash

KAFKA_HOME=/home/$USER/.local/kafka
KAFKA_PROPERTIES=$KAFKA_HOME/config/server.properties

echo "=================================="
echo "KAFKA_HOME: $KAFKA_HOME"
echo "KAFKA_PROPERTIES: $KAFKA_PROPERTIES"
echo "=================================="

echo "Starting Kafka Broker"

# Error Handling
error_handling() {
  echo "=================================="
  echo " [ERROR] Kafka Broker failed to start."
  echo "=================================="
  exit 1
}

# Check Path
if [ ! -d "$KAFKA_HOME" ]; then
  echo "=================================="
  echo " [ERROR] Kafka Home directory not found: $KAFKA_HOME"
  echo "=================================="
  error_handling
fi

if [ ! -f "$KAFKA_PROPERTIES" ]; then
  echo "=================================="
  echo " [ERROR] Kafka Properties file not found: $KAFKA_PROPERTIES"
  echo "=================================="
  error_handling
fi

echo "Kafka Home: $KAFKA_HOME"
echo "Kafka Properties: $KAFKA_PROPERTIES"

# Kafka Broker 시작
$KAFKA_HOME/bin/kafka-server-start.sh -daemon $KAFKA_PROPERTIES

# Kafka 시작 상태 확인
if [ $? -ne 0 ]; then
  error_handling
fi

echo "Kafka Broker Started successfully"

  • 실행 권한 부여
1
chmod +x ~/.local/start_kafka_broker.sh
  • Kafka 브로커 실행
1
~/.local/start_kafka_broker.sh

kafaka-broker


8. 간단한 토픽 생성 및 메시지 송수신 실습

8-1. 토픽 생성

  • Kafka에서 메시지를 주고받기 위해 test 토픽 생성
1
~/.local/kafka/bin/kafka-topics.sh --bootstrap-server localhost:9092 --create --replication-factor 1 --partitions 1 --topic test

kafka1

8-2. 토픽 정보 확인

  • 생성한 토픽의 상세 정보 확인
1
~/.local/kafka/bin/kafka-topics.sh --bootstrap-server localhost:9092 --describe --topic test
  • 출력 정보
    • 파티션 수, 리플리케이션 팩터 등 토픽의 기본 설정값 표시

kafka2

8-3. 토픽에 메시지 쓰기

  • kafka-console-producer.sh를 사용해 test 토픽에 메시지 전송
1
~/.local/kafka/bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic test
  • 메시지 입력
    • 입력된 메시지는 Kafka 브로커를 통해 저장됨
1
2
> TestMessage1
> TestMessage2

kafka3

8-4. 토픽에서 메시지 읽기

  • kafka-console-consumer.sh를 사용해 저장된 메시지 읽기
1
~/.local/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
  • 출력결과
    • 토픽에 저장된 메시지가 순서대로 표시
    • --from-beginning 옵션을 통해 기존 메시지 모두 읽기 가능

kafka4

This post is licensed under CC BY 4.0 by the author.