Kafka 완전 정복 : 클러스터 구축부터 MSA 환경 활용까지/기본,심화 개념, 아키텍처와 생태계

Ch01. Apache Kafka 기본 개념 및 이해 - Apache Kafka

webmaster 2023. 3. 19. 22:45
728x90

Kafka란?

  • 이벤트 스트리밍 플랫폼이다.

Event 란?

Event는 비즈니스에서 일어나는 모든 일(데이터)을 의미한다.

  • 웹사이트에서 무언가를 클릭하는 것
  • 청구서 발행
  • 송금
  • 배송 물건의 위치 정보
  • 택시의 GPS 좌표
  • 센서의 온도/압력 데이터

Event는 BigData의 특징을 가진다.

  • 비즈니스의 모든 영역에서 광범위하게 발생
  • 대용량의 데이터(Big Data) 발생
  • Event Stream은 연속적인 많은 이벤트들의 흐름을 의미

Apache Kafka의 탄생

LinkedIn 내에서 개발되었다.

  • 하루 4.5 조 개 이상의 이벤트 스트림 처리
  • 하루 3,000 억 개 이상의 사용자 관련 이벤트 스트림 처리
  • 기존의 Messaging Platform(예, MQ)로 처리 불가능
  • 이벤트 스트림 처리를 위해 개발
  • 2011년에 Apache Software Foundation 에 기부되어 오픈소스화

Apache Kafka의 특징

특징

  • 이벤트 스트림을 안전하게 전송한다(Publish/ Subscribe)
  • 이벤트 스트림을 디스크에 저장한다.
    • 기존 솔루션과 가장 큰 차이가 나는 특징이다.
  • 이벤트 스트림을 분석 및 처리한다.

Apache Kafka 사용 사례

Event(메시지/데이터)가 사용되는 모든 곳에서 사용된다.

  • Messaging System
  • IOT 디바이스로부터 데이터 수집
  • 애플리케이션에서 발생하는 로그 수집
  • Realtime Event Stream Processing (Fraud Detection, 이상 감지 등)
  • DB 동기화 (MSA 기반의 분리된 DB간 동기화)
  • 실시간 ETL
  • Spark, Flink, Storm, Hadoop 과 같은 빅데이터 기술과 같이 사용

Apache Kafka의 성능

Kafka / Pulsar / RabbitMQ 비교

  • Kafka의 성능이 월등히 높은 걸 알 수 있다.
    • RabbitMQ가 낮은 이유는 동일한 데이터를 기준으로 하면 그래프가 너무 높게 나와 적은 양을 데이터로 테스트를 진행했기 때문이다.

 

728x90