1. 기본 개념
kafka란?
- 고성능, 고가용성을 제공하는 분산 스트리밍 플랫폼. 주로 대용량의 실시간 데이터 스트림을 처리, 데이터 파이프라인을 구축
- 용도: 실시간 메시지 큐, 로그 수집, 스트림 처리에 활용
2. 아키 텍처
분산시스템
- Kafka는 분산시스템으로 설계되어 있어 높은 처리량, 스케일아웃 가능
- Broker: Kafka 클러스터는 하나 이상의 서버(broker)로 구성. 각 브로커는 스트림의 데이터를 저장하고 처리
3. 데이터 모델
Topic
=> 데이터 스트림은 '토픽(Topic)'이라 불리는 카테고리나 피드로 구분.
- 각토픽은 여러 레코드(메시지)를 포함할 수 있음
Partition
=> 토픽은 성능과 병렬처리를 위해 파티션으로 나뉨.
=> 각 파티션은 순서가 지정된 불변의 레코드들의 집합
4. 주요 구성 요소
Producer
- 데이터의 생산자로, Kafka 시스템에 데이터를 보내는 역할을 함.
- Producer는 하나 이상의 kafak 토픽에 데이터를 게시(Publish)함
Consumer
- 데이터의 소비자로, Kafka 시스템으로 부터 데이터를 받아가는 역할을 함.
- Consumer는 하나 이상의 토픽에서 데이터를 구독(subscribe)하고 처리.
Broker
- Kafka 서버를 의미. 데이터의 저장과 전송을 관리.
- 클러스터를 형성하여 고가용성과 확장성을 제공
Zookeeper
- Kafka의 클러스터 구성, 리더 선출, 메타데이터 관리 등을 위헤 사용
- 분산 환경을 안정적으로 관리하는데 필요