본문 바로가기
기타

[We-Co] Kafka에 대해서 간단하게 알아보자.

by 위기의코딩맨 2025. 12. 23.
반응형

안녕하세요. 위기의 코딩맨입니다.

요즘 너무 많은 일이 있어서 오랜만에 포스팅을 작성해봅니다. ㅎㅎㅎ

오늘은 kafka에 대해서 간단하게 알아보도록 하겠습니다.

 

[ Apache Kafka란? ]

Apache Kafka는 대용량 실시간 데이터 스트리밍을 처리하기 위한 분산 메시징 플랫폼이라고 합니다.

로그 수집, 이벤트 스트리밍, 실시간 데이터 파이프라인, 마이크로서비스 간 비동기 통신 등에 상용되고 있습니다.

채용공고를 보면, 주로 데이터 기반으로 작업하려고 할때, 많이 사용되는것 같습니다.

 

[ Kafka가 왜 탄생했나?! ]

  • 기존 메시지 큐(RabbitMQ 등)는 대규모 트래픽 처리에 한계
  • 로그성 데이터, 이벤트 데이터를 안정적으로 저장·재처리할 필요
  • 높은 처리량과 확장성 요구

[ Kafka 핵심 개념 ]

- Broker

  • Kafka 서버 인스턴스
  • 메시지를 저장하고 Producer와 Consumer를 중계

- Topic

  • 메시지가 저장되는 논리적 단위
  • 하나의 Topic은 여러 Partition으로 구성 가능

- Partition

  • Topic 내부의 분산 단위
  • 병렬 처리와 성능 향상의 핵심 요소

- Producer

  • 메시지를 Topic에 발행하는 역할

- Consumer

  • Topic의 메시지를 읽어가는 역할

- Consumer Group

  • 여러 Consumer가 하나의 그룹으로 동작
  • Partition 단위로 메시지를 나눠 처리

 

 

[ Kafka Install ]

 

Kafka JVM 기반이므로 Java 설치가 필요합니다~!

 

1. Java 설치

더보기
sudo apt update
sudo apt install -y openjdk-11-jdk

2. Kafka 다운로드 설치

- user와 path은 경로를 지정해주셔야 합니다~!

더보기
cd /opt
sudo wget https://archive.apache.org/dist/kafka/3.7.0/kafka_2.13-3.7.0.tgz
sudo tar -xvzf kafka_2.13-3.7.0.tgz
sudo ln -s kafka_2.13-3.7.0 kafka
sudo chown -R user:staff path/kafka_2.13-3.7.0

3. Zookeeper 실행

- Kafka는 Zookeeper를 기본으로 사용한다고 합니다.

- 터미널로 실행 후, 유지

더보기
cd /opt/kafka
bin/zookeeper-server-start.sh config/zookeeper.properties

4. Kafka Broker 실행

더보기
cd /opt/kafka
bin/kafka-server-start.sh config/server.properties

[ Kafka TEST ]

간단한 통신 테스트를 진행해보도록 하겠습니다.

위에 설치 방법가 실행을 모두 진행하면 2개의 서버가 실행이 되고,

 

1개의 창으로 producer의 메세지를 설정합니다.

- hi my App Start~!

- hi my App ~!

 

다른 창으로 consumer로 메세지를 받아보도록 하겠습니다.

접속하게 되면, 해당 producer가 설정한 메시지를 받는 것을 확인할 수 있습니다.

 

또한, 실시간으로 producer에서 메시지를 뿌리면 실시간으로 consumer에서 받는것을 확인할 수 있습니다.

 

Kafka에 대해서 간단하게 설치 및 진행을 해보았습니다.

이것을 어떻게 실무적으로 사용하고, 더 딥하게 사용되는지 공부를 해봐야겠습니다.

반응형