IT 기술/DB
아파치 카프카
gooooooood
2025. 4. 9. 21:30
반응형
1. 분산 메시징 시스템, 카프카의 개요
가. 카프카의 정의
- 센서, 애플리케이션 등에서 수집한 데이터 스트림을 실시간으로 관리하기 위한 오픈소스 시스템
나. 카프카의 주요 역할
구성 요소 | 주요 역할 | 설명 |
Producer | 메시지 생성자 | 데이터 Topic으로 전송 클라이언트 |
Consumer | 메시지 수진사 | 메시지 읽어와 처리 애플리케이션 |
Broker | 메시지 저장소 | Topic과 Particion 데이터 저장, 전달 |
Topic | 메시지 분류 단위 | 메시지 분리 논리적 채널 |
Partition | 메시지 병렬 처리 단위 | Topic 분할하여 분산,병렬 처리 |
ZooKeeper | 메타데이터 및 클러스터 관리 | 브로커 등록, 리더 선출 |
Kafka Controller | 클러스터 직접 제어 | Zookeeper 없이 자체 관리 |
- 메시지 전송 시 보내는 역할과 받는 역할 완벽하게 분리된 발행/구독 방식 적용
2. 아파치 카프카의 아키텍처와 핵심 API
가. 아파치 카프카의 아키텍처
나. 아파치 카프카 핵심 API
API | 주요 기능 | 활용 예시 |
Producer API | 애플리케이션이 데이터 전송 | IoT 센서 데이터, 로그 수집 |
Consumer API | Kafka로부터 데이터 구독 처리 | 실시간 로그 분석, 모니터링 |
Streams API | Kafka 내 데이터 스트림 실시간 처리 | 실시간 집계, 필터링, 조인 |
Connect API | 외부 시스템과 데이터 이동 자동화 | MySQL -> Kafka -> BigQuery |
Admin API | 클러스터/토픽 관리 | 토픽 생성, 삭제, 변경 관리 |
3. 아파치 카프카 동작 방식
구분 | 동작 | 설명 |
데이터 생산 및 전송 | 토픽 생성 | Kafka 서버 구성, Topic 생성 |
Producer가 메시지 생성 | Producer가 데이터 생성 | |
Broker에 메시지 전송 | 데이터 Kafka Topic으로 전송 | |
데이터 저장 및 소비 | 메시지 파티션 저장 | 로그 파일 형태로 저장 |
Consumer가 메시지 요청 | Consumer가 특정 Topic 구독 | |
데이터 관리 및 연동 | Zookeeper 메타데이터 관리 | 브로커 상태, 파티션 등 관리 |
다른 시스템과 연동 | Kafka Connect, Streams API 활용 |
4. 카프카 활용 실시간 데이터 처리 시스템 구축
- 실시간 데이터 카프카에 보관 후 스톰에서 즉시 처리 및 메시지 내용 추출 후 MongoDB, HDFS 등으로 전송하여 데이터 분석
반응형