Kafka
2024. 11. 27. 18:09ㆍDATA/Kafka
반응형
Kafka란?
- Kafka의 역사 및 기본 구조 소개:
- Kafka는 LinkedIn에서 시작되어 현재는 Apache Software Foundation에서 관리하는 오픈소스 메시징 시스템이다. 주로 대규모의 데이터 스트리밍과 실시간 데이터 처리에 사용된다.
- Kafka는 분산 스트리밍 플랫폼으로, 데이터를 실시간으로 처리하고, 저장하며, 다양한 애플리케이션에서 데이터를 쉽게 송수신할 수 있도록 한다.
- Kafka의 주요 구성 요소로는 Producer, Broker, Consumer, Topic, Partition 등이 있다.
Kafka의 구조
- 카프카 브로커의 이해:
- Kafka 브로커는 메시지를 저장하고 Consumer로부터 요청을 받으며, Producer로부터 데이터를 받아서 토픽에 기록하는 역할을 한다.
- 하나의 Kafka 클러스터는 여러 개의 브로커로 구성되며, 이들은 서로 데이터를 복제하고 분산하여 관리한다.
- 카프카 클러스터와 주키퍼:
- Kafka는 주키퍼(Zookeeper)를 사용하여 클러스터를 관리한다. 주키퍼는 Kafka 브로커들의 상태 관리 및 클러스터의 메타데이터 관리를 담당한다.
- 카프카의 토픽과 파티션:
- Kafka의 데이터는 토픽(Topic) 단위로 구분되며, 각 토픽은 여러 개의 파티션(Partition)으로 나뉜다.
- 파티션은 데이터를 병렬 처리할 수 있도록 도와주며, 토픽 내에서 데이터가 어떻게 분산될지 결정한다.
- 카프카에서 복제란?
- Kafka는 데이터의 내구성을 보장하기 위해 각 파티션을 여러 브로커에 복제하여 저장한다. 이를 통해 데이터의 손실을 방지하고, 고가용성을 보장한다.
Kafka 프로듀서
- 카프카 프로듀서의 이해:
- Kafka Producer는 데이터를 카프카 토픽으로 보내는 애플리케이션이다. 프로듀서는 데이터를 메시지로 만들어 Kafka의 토픽에 전송한다.
- 프로듀서는 메시지를 파티션에 전송하며, 메시지가 어느 파티션에 저장될지는 파티션 키에 따라 결정된다.
- 매니지드 또는 온프레미스 Kafka, 어떻게 결정할까?
- 매니지드 Kafka: 클라우드 환경에서 제공되는 Kafka 서비스(예: Confluent Cloud)는 관리의 부담을 덜어주고, 신속하게 배포할 수 있다.
- 온프레미스 Kafka: 자체적으로 Kafka 클러스터를 구축하고 관리하는 방식으로, 보안, 제어, 커스터마이징이 중요할 경우 유리하다.
- 카프카 프로듀서 옵션들:
- acks: 프로듀서가 메시지를 전송할 때 확인 응답을 기다리는 방식을 설정한다.
- acks=0: 프로듀서는 응답을 기다리지 않다.
- acks=1: 리더 브로커만 응답한다.
- acks=all: 모든 복제 브로커가 응답해야 한다.
- acks: 프로듀서가 메시지를 전송할 때 확인 응답을 기다리는 방식을 설정한다.
Chapter 4: Kafka 컨슈머
- 카프카 컨슈머의 이해:
- Kafka Consumer는 Kafka 토픽으로부터 데이터를 소비(읽기) 하는 애플리케이션이다. 여러 개의 컨슈머가 하나의 토픽을 소비할 수 있다.
- 카프카 컨슈머 그룹의 이해:
- Consumer Group은 하나 이상의 컨슈머가 하나의 그룹으로 묶여 데이터를 병렬로 소비할 수 있도록 한다. 컨슈머 그룹 내에서 각 컨슈머는 파티션을 독점적으로 소비한다.
- 카프카 컨슈머 옵션들:
- auto.offset.reset: 컨슈머가 읽어야 할 오프셋(offset)의 초기값을 설정한다.
- earliest: 가장 오래된 메시지부터 읽기 시작한다.
- latest: 최신 메시지부터 읽기 시작한다.
- auto.offset.reset: 컨슈머가 읽어야 할 오프셋(offset)의 초기값을 설정한다.
- 카프카 컨슈머 Acks:
- Kafka 컨슈머가 메시지를 처리하고, 성공적으로 처리했을 때 그 정보를 커밋(acknowledge) 한다. 이 커밋은 컨슈머 오프셋을 관리하는 데 중요하다.
- ISR에 대한 이해:
- ISR(In-Sync Replicas)는 파티션의 리더와 동기화된 복제본(replica)들을 의미한다. ISR에 포함된 브로커들은 데이터의 일관성을 유지하며, Kafka는 ISR에 속하는 브로커만을 사용하여 데이터를 읽고 쓴다.
반응형
'DATA > Kafka' 카테고리의 다른 글
ISR (In Sync Replica) (0) | 2024.11.27 |
---|---|
카프카에서 세그먼트(Segment)와 레코드(Record) (0) | 2024.11.27 |
카프카의 주요 개념: 이벤트, 스트림, 토픽 (0) | 2024.11.27 |
Zookeeper 및 부분 실패(Partial Failure) (0) | 2024.11.27 |
Kafka의 프로듀서(Producer) | 카프카 데이터 복제 (Replication) |컨트롤러와 코디네이터 (0) | 2024.11.27 |