- 아파치 카프카는 대규모 실시간 데이터를 빠르고 안정적으로 처리하는 분산 스트리밍 플랫폼입니다. 🚀
- 링크드인에서 개발되어 아파치 재단으로 이관되었으며, 기존 메시징 플랫폼의 한계를 극복하기 위해 탄생했습니다. 💡
- 높은 처리량(2ms 대기 시간), 뛰어난 확장성(수천 개의 브로커, 페타바이트 규모), 데이터 영속성(디스크 기반 저장), 고가용성(클러스터 확장, 멀티리전)을 특징으로 합니다. 📈
- 실시간 로그 수집 및 처리(ELK 스택 연동), 사용자 행동 분석, IoT 센서 데이터 처리, 금융 거래 모니터링, 마이크로서비스 간 이벤트 전송 등 다양한 분야에서 활용됩니다. 🌐
- 핵심 개념으로는 데이터를 보내는 프로듀서, 메시지를 저장/관리하는 브로커, 데이터를 소비하는 컨슈머, 메시지 구분 단위인 토픽, 토픽의 물리적 분할 단위인 파티션, 메시지 순서 식별자인 오프셋이 있습니다. 🧩
- 컨슈머 그룹을 통해 여러 컨슈머가 병렬로 데이터를 처리하여 부하를 분산하고 처리 속도를 높일 수 있습니다. 👯
- 카프카는 브로커, 메타데이터 관리(주키퍼/크라프트), 외부 시스템 연동(카프카 커넥트), 실시간 데이터 처리 라이브러리(카프카 스트림즈), 메시지 구조 관리(스키마 레지스트리) 등의 구성 요소를 가집니다. 🛠️
- 기존 메시지 큐(예: RabbitMQ)와 비교하여 월등히 높은 처리량과 디스크 기반의 영속성을 제공하며, 순서 보장은 파티션 단위로 이루어집니다. ⚡
- 장점은 초당 수백만 건의 메시지 처리 능력, 파티션 기반의 확장성 및 병렬 처리, 디스크 저장 및 복제 기능으로 인한 영속성과 안정성입니다. ✅
- 단점은 초기 설정 및 운영의 복잡성과 토픽 전체의 순서 보장을 위해서는 파티션을 하나만 사용해야 한다는 제약이 있습니다. ⚠️





