Kafka 설치 방법
Kafka를 설치하고 설정하는 단계는 다음과 같습니다:
1. 사전 준비
- Kafka를 실행하려면 Java(JDK 8 이상)와 ZooKeeper(또는 KRaft)를 설치해야 합니다.
- Kafka 설치를 위한 사양:
- CPU: 클러스터 환경에서는 여러 코어를 권장
- RAM: 최소 8GB 이상 권장
- 디스크: SSD 사용 권장 (빠른 I/O 속도를 위해)
2. Kafka 다운로드
- Apache Kafka 공식 사이트에서 최신 버전을 다운로드합니다.
- 압축을 해제합니다:
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 데이터 흐름 요약
- 프로듀서가 메시지를 생성하여 토픽으로 전송.
- 메시지는 브로커에 의해 저장되고, 파티션으로 분산.
- 컨슈머가 토픽에서 메시지를 읽어와 처리.
Kafka의 이러한 구조는 높은 확장성, 내구성, 실시간 처리를 제공합니다.
'KAFKA' 카테고리의 다른 글
분산 이벤트 스트리밍 플랫폼(Kafka) (0) | 2025.01.21 |
---|---|
APACHE KAFKA 데이타마이그래이션 작업(102) (0) | 2019.10.31 |