<aside>
💡
요약
Kafka 주요 구성 및 Paragon Kafka Architecture
[PARAGON] Burrow
</aside>
Kafka 란?
- Apache Kafka 대용량의 실시간 데이터 스트리밍을 처리하기 위해 설계된 분산형 이벤트 스트리밍 플랫폼
- 데이터의 **생산자(Producer)**와 소비자(Consumer) 사이에서 **브로커(Broker)**를 통해 메시지를 주고받으며, **토픽(Topic)**과 **파티션(Partition)**을 활용하여 데이터의 효율적인 관리와 처리를 지원
- 활용
- 이벤트 드리븐 아키텍처와 스트림 데이터 파이프라인에서 중요한 역할을 수행
- 스트림 이벤트를 다루는데 특화된 카프카는 실시간 데이터를 처리하는데 적합
- 시간 단위 이벤트 데이터를 다루기 위한 타임스탬프, 순서를 보장하기 위한 파티션과 메시지 키와 같은 기능이 카프카에 포함
02. 주요 구성 요소
Producer (프로듀서):
- 데이터를 생성하여 Kafka 특정 토픽으로 전송하는 역할
- 데이터의 키를 기반으로 특정 파티션에 데이터를 전송하거나, 키 없이 라운드 로빈 방식으로 파티션에 분배할 수 있습니다.
구분 |
Key O |
Key X |
파티션 선택 |
Key의 해시 값을 기반으로 선택 |
Round-Robin 방식으로 분배 |
순서 보장 |
같은 Key의 데이터는 순서 보장 |
순서 보장이 필요 없는 데이터 |
부하 분산 |
특정 Key가 집중될 수 있음 |
파티션 간 균등한 부하 분산 |
사용 사례 |
주문 ID, 사용자 ID 등 일관성 필요 |
로그, 이벤트 스트리밍 등 분산 필요 |
Broker (브로커):
- Kafka 서버의 인스턴스로 프로듀서로부터 받은 데이터를 저장하고 컨슈머에게 전달하는 중개자 역할
- 여러 브로커가 모여 하나의 Kafka 클러스터를 구성
- 각 브로커는 특정 파티션의 리더 역할을 담당합니다.
Consumer (컨슈머):