728x90
반응형
Kafka는 대용량 데이터 스트림을 효율적으로 처리하는 분산 메시지 큐 시스템으로, 실시간 데이터 스트리밍을 지원한다.
Kafka는 LinkedIn에서 개발된 오픈 소스 스트리밍 플랫폼으로, 대용량의 실시간 데이터 스트림을 효과적으로 처리하기 위해 만들어졌다.
스트리밍 플랫폼: 실시간으로 데이터를 수집, 처리, 저장 및 전달하는 시스템.
특징
고성능 및 확장성:
대용량 데이터 스트림을 처리하기 위해 설계되어 있으며, 수천 대의 머신에서도 운영 가능하다.
내고장성:
여러 브로커로 데이터를 복제하여 데이터 손실을 방지하고, 장애 발생 시에도 지속적으로 운영된다.
유연한 메시징 시스템:
다양한 프로듀서 및 컨슈머 언어로 작성된 애플리케이션 간에 데이터를 신속하게 전달한다.
저지연:
실시간 데이터 처리를 위해 설계되어 있어, 데이터를 빠르게 처리하고 전달한다.
높은 처리량:
메시지 처리량이 빠르고, 수많은 프로듀서 및 컨슈머로부터의 동시 접속을 처리할 수 있다.
구성
프로듀서 (Producer)
- 데이터를 생성하고 Kafka Topic으로 전송한다.
- 실시간 또는 일정 간격으로 로그 데이터, 이벤트 등을 생성하여 전송할 수 있다.
토픽 (Topic)
- 데이터를 일시적으로 저장하면서 여러 프로듀서와 컨슈머 간의 실시간 데이터 스트리밍을 통제한다.
- 논리적인 그룹화를 제공하며, 프로듀서와 컨슈머의 메시지를 송.수신한다.
브로커 (Broker)
- 메시지를 저장하고 관리하며, 여러개의 브로커로 구성된 Kafka Cluster가 데이터를 분산 저장하고 처리하는데 사용된다.
- 실제 물리적 데이터를 처리 및 저장하고 중간 매개체, 데이터 분산 저장, 데이터 복제 등의 역할을 한다.
컨슈머 (Consumer)
- Kafka Topic에서 데이터를 소비한다.
- 토픽에서 데이터를 읽어와서 로그 데이터 분석, 저장 등 필요한 처리를 수행한다.
- 그룹을 형성하여 병렬 처리가 가능하다.
사용 분야 및 예시
실시간 스트리밍 데이터 파이프라인:
엔터프라이즈 시스템 간의 무수히 많은 데이터/이벤트 레코드를 규모의 제약 없이 실시간으로 전송하도록 설계된 애플리케이션 이다. (데이터 손상, 중복 등의 문제점 제거)
실시간 스트리밍 애플리케이션:
레코드 또는 이벤트 스트림에 의해 구동되는 애플리케이션, 그리고 자체적으로 스트림을 생성하는 애플리케이션이다. (매장 재고량 업데이트, 클릭 스트림 분석으로 개인별 추천/광고 노출 등이 해당)
Microsoft
실시간 이벤트 처리
- Azure 서비스들 중 Event Hubs라는 이벤트 스트리밍 플랫폼을 제공하여 실시간 이벤트처리 지원한다.
AirBnB
로그 처리 및 분석
- 다양한 애플리케이션에서 발생하는 로그 데이터(사용자 활동, 예약 정보 등)를 수집하고 분석하여 실시간으로 추적하고 분석할 수 있다.
Netflix
실시간 스트리밍
- 사용자가 어떤 콘텐츠를 시청하는지 실시간으로 추적하고 해당 정보를 기반으로 알고리즘을 개선하는 등의 다양한 스트리밍 데이터를 처리한다.
reference.
728x90
반응형