Kafka 설치 방법

Kafka를 설치하고 설정하는 단계는 다음과 같습니다:


1. 사전 준비

  • Kafka를 실행하려면 Java(JDK 8 이상)와 ZooKeeper(또는 KRaft)를 설치해야 합니다.
  • Kafka 설치를 위한 사양:
    • CPU: 클러스터 환경에서는 여러 코어를 권장
    • RAM: 최소 8GB 이상 권장
    • 디스크: SSD 사용 권장 (빠른 I/O 속도를 위해)

2. Kafka 다운로드

  1. Apache Kafka 공식 사이트에서 최신 버전을 다운로드합니다.
  2. 압축을 해제합니다:
     
    tar -xzf kafka_<version>.tgz cd kafka_<version>

3. ZooKeeper 실행

Kafka는 기본적으로 ZooKeeper에 의존해 메타데이터를 관리합니다. (Kafka 2.8 이상부터 KRaft로 Zookeeper 없이 설정 가능)

 
bin/zookeeper-server-start.sh config/zookeeper.properties

4. Kafka 브로커 실행

Kafka 브로커를 시작합니다.

 
bin/kafka-server-start.sh config/server.properties

5. 토픽 생성

Kafka에서 데이터를 저장할 토픽을 생성합니다.

 
bin/kafka-topics.sh --create --topic test-topic --bootstrap-server localhost:9092 --partitions 3 --replication-factor 1

6. 프로듀서 실행

Kafka에 메시지를 보내는 프로듀서를 실행합니다.

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

메시지를 입력하면 해당 메시지가 Kafka에 저장됩니다.

7. 컨슈머 실행

Kafka에서 메시지를 읽는 컨슈머를 실행합니다.

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

Kafka 동작 원리

Kafka의 동작은 다음 구성 요소를 중심으로 이해할 수 있습니다:

1. 토픽과 파티션

  • Kafka는 데이터를 토픽이라는 논리적 채널에 저장합니다.
  • 각 토픽은 여러 파티션으로 나뉘어 데이터를 분산 저장합니다.
    • 파티션은 순차적으로 데이터를 저장하며, 메시지는 **오프셋(offset)**이라는 고유 번호를 가집니다.

2. 프로듀서

  • 프로듀서는 데이터를 Kafka 토픽으로 전송합니다.
  • 데이터를 어느 파티션에 저장할지 결정:
    • 기본적으로 라운드로빈 방식
    • 특정 키를 지정해 동일한 파티션에 저장 가능 (e.g., 고객 ID 기반)

3. 브로커

  • Kafka 클러스터의 각 노드는 브로커로 작동합니다.
  • 브로커는 데이터를 저장하고, 소비자가 요청할 때 데이터를 제공합니다.
  • 토픽의 각 파티션은 리더와 여러 팔로워로 구성되며, 리더가 데이터를 처리하고 팔로워가 복제합니다.

4. 컨슈머

  • 컨슈머는 Kafka에서 데이터를 읽어옵니다.
  • 컨슈머 그룹을 사용해 데이터 병렬 처리 가능:
    • 동일 그룹의 컨슈머는 동일한 파티션 데이터를 처리하지 않습니다.

5. 복제와 내구성

  • Kafka는 각 파티션의 데이터를 여러 브로커에 복제해 장애 복구를 지원합니다.
    • replication-factor를 설정해 복제본 수를 지정.
    • 한 브로커가 다운되더라도 다른 브로커가 데이터를 제공합니다.

Kafka 데이터 흐름 요약

  1. 프로듀서가 메시지를 생성하여 토픽으로 전송.
  2. 메시지는 브로커에 의해 저장되고, 파티션으로 분산.
  3. 컨슈머가 토픽에서 메시지를 읽어와 처리.

Kafka의 이러한 구조는 높은 확장성, 내구성, 실시간 처리를 제공합니다.


rcv_info_to_kafka.cs
0.00MB

'KAFKA' 카테고리의 다른 글

분산 이벤트 스트리밍 플랫폼(Kafka)  (0) 2025.01.21
APACHE KAFKA 데이타마이그래이션 작업(102)  (0) 2019.10.31

+ Recent posts