데브허브 | DEVHUB | [10분 테코톡] 띠용의 10분 카프카
- 카프카는 실시간 스트리밍 이벤트 데이터를 수집하고 처리하는 데 최적화된 '분산 이벤트 스트리밍 플랫폼'입니다. 🚀
- 링크드인에서 대규모 실시간 사용자 이벤트 데이터 처리의 한계와 여러 팀의 동일 데이터 요구를 해결하기 위해 탄생했습니다. 💡
- 모놀리식에서 마이크로서비스 아키텍처(MSA)로의 전환 과정에서 복잡해진 서비스 간 데이터 통신을 단순화하는 '중앙 이벤트 허브' 역할을 하며 널리 채택되었습니다. 🔗
- '토픽'은 이벤트가 저장되는 논리적 공간이며, '프로듀서'가 이벤트를 발행하고 '컨슈머'가 구독하여 읽는 Pub/Sub 모델로 동작합니다. 📁
- 토픽은 여러 '파티션'으로 구성되어 실제 이벤트 데이터를 저장하며, 파티션은 병렬 처리를 가능하게 하여 처리량을 증가시킵니다. 🧩
- '오프셋'은 파티션 내 데이터의 고유 위치를 나타내며, 카프카는 컨슈머가 어디까지 읽었는지 추적하여 데이터 재활용 및 순차 처리를 돕습니다. 🔢
- '컨슈머 그룹' 내 컨슈머들은 서로 다른 파티션을 할당받아 병렬로 데이터를 처리할 수 있으며, 키값을 설정하면 동일 키 데이터의 순서 보장이 가능합니다. 👥
- 카프카는 기존 메시지 큐와 달리 컨슈머가 데이터를 읽어가도 삭제하지 않고, 설정된 보존 기간/용량만큼 데이터를 유지하여 여러 번 재활용할 수 있습니다. ⏳
- '브로커'는 카프카 애플리케이션이 실행되는 서버이며, 여러 브로커가 모여 '카프카 클러스터'를 구성하여 부하 분산과 가용성을 높입니다. 🌐
- '복제(Replication)'는 파티션 데이터를 여러 브로커에 저장하여 데이터 손실을 방지하고, 'ISR(In-Sync Replica)'은 리더 장애 시 즉각적인 서비스 연속성을 보장합니다. ⚡