Apache Kafka는 대용량 실시간 데이터 스트림을 처리하기 위한 분산 메시징 시스템입니다. 이 가이드에서는 Kafka를 직접 설치하고, Producer와 Consumer를 활용하여 메시지를 주고받는 과정을 단계별로 설명합니다.
📋 목차
- Kafka 설치 및 환경 구성 (Mac & Windows)
- Zookeeper 및 Kafka 실행
- 토픽 생성 및 메시지 전송
- Producer와 Consumer 실습
- 자주 발생하는 오류 및 해결 방법
1️⃣ Kafka 설치 및 환경 구성
✅ Mac 사용자의 경우:
- Kafka 공식 다운로드 페이지에서 최신 버전을 다운로드합니다. Scala 버전은 무관합니다. 예:
kafka_2.13-3.7.0.tgz
- 터미널을 열고, 다운로드한 디렉토리로 이동하여 다음 명령어를 실행하여 압축을 해제합니다:
mkdir ~/kafka_demo
tar -xzf kafka_2.13-3.7.0.tgz -C ~/kafka_demo --strip-components=1
✅ Windows 사용자의 경우:
- 동일한 페이지에서
.zip
형식의 Kafka를 다운로드합니다. - 다운로드한 파일의 압축을 원하는 디렉토리에 해제합니다. 예:
C:\kafka_demo
- 경로에 공백이 없도록 주의하세요.
2️⃣ Zookeeper 및 Kafka 실행
Kafka는 Zookeeper에 의존하므로, 먼저 Zookeeper를 실행한 후 Kafka를 실행해야 합니다.
🔹 Mac/Linux
# Zookeeper 실행
cd ~/kafka_demo
./bin/zookeeper-server-start.sh config/zookeeper.properties
# 새로운 터미널 창을 열고, Kafka 실행
cd ~/kafka_demo
./bin/kafka-server-start.sh config/server.properties
🔹 Windows
# Zookeeper 실행
cd C:\kafka_demo
bin\windows\zookeeper-server-start.bat config\zookeeper.properties
# 새로운 명령 프롬프트 창을 열고, Kafka 실행
cd C:\kafka_demo
bin\windows\kafka-server-start.bat config\server.properties
💡 **Tip**: 각 프로세스를 별도의 터미널 또는 명령 프롬프트 창에서 실행하여 로그를 모니터링하세요.
3️⃣ 토픽 생성 및 메시지 전송
Kafka에서 메시지를 주고받기 위해서는 먼저 토픽을 생성해야 합니다. 여기서는 Covy-events
라는 토픽을 생성하겠습니다.
# 토픽 생성
cd ~/kafka_demo
./bin/kafka-topics.sh --create \
--topic Covy-events \
--bootstrap-server localhost:9092 \
--partitions 1 \
--replication-factor 1
💡 **Note**: Windows 사용자는 위 명령어의 슬래시(
\
)를 백슬래시(/
)로 변경하여 실행하세요.
4️⃣ Producer와 Consumer 실습
이제 생성한 토픽("Covy-events")을 사용하여 메시지를 생산(Producer)하고 소비(Consumer)하는 과정을 실습해보겠습니다.
📨 Producer 실행 (메시지 보내기)
# Producer 실행
cd ~/kafka_demo
./bin/kafka-console-producer.sh \
--broker-list localhost:9092 \
--topic Covy-events
roducer는 이 명령어를 실행하면 입력 대기 상태에 들어가고,
터미널에서 메시지를 입력하면 Topic으로 전송됩니다.
📥 Consumer 실행 (메시지 수신 확인)
# Consumer 실행
cd ~/kafka_demo
./bin/kafka-console-consumer.sh \
--bootstrap-server localhost:9092 \
--topic Covy-events \
--from-beginning
4. 🧪 실습 결과 확인
- 두 개의 터미널을 실행합니다.
- 하나는 Producer, 하나는 Consumer 역할로 나눕니다.
- Producer 쪽 터미널에서 메시지를 입력해보세요.
# Producer 터미널 입력:
Hello from Covy! 👋
# Consumer 터미널 출력:
Hello from Covy! 👋
Kafka 기반 메시징 시스템이 정상적으로 동작하는 걸 확인할 수 있을 거예요.
🏁 마무리
이번 실습을 통해 Kafka의 기본 구조와 메시징 흐름을 간단히 체험해봤습니다.
이제 여러분은 Kafka의 Topic 기반 메시징 구조를 활용하여
실시간 통신 시스템의 기반을 직접 구성할 수 있게 된 셈입니다.