DEVOPS

Kafka 란

블루티카 2022. 2. 12. 18:38

주변 개발자 지인들 한테 카프카에 대해 설명을 하자니 나 자신 조차도 정리가 되지 않아서 설명을 잘 해주지 못했는데 이참에 정리를 해서 확실히 하고자 글을 적게 되었다.

Kafka? 카프카? 가 뭐야

카프카 마크

Apache Kafka는 Data in Motion Platform for Enterprise 또는 Event Streaming Platform 이라고 할 수 있다.

대개 고성능 분산 이벤트 스트리밍 플랫폼이라고 많이 하는데, 여기서 핵심은 이벤트라는 단어이다.

이벤트는 비즈니스에서 일어나는 모든 일(데이터)을 의미하고, 또한 빅데이터의 특징을 가지고 있다.

  • 비즈니스의 모든 영역에서 광범위하게 발생
  • event stream은 연속적인 많은 이벤트들의 흐름을 의미

탄생 배경

링크드인 내에서 개발 탄생됨

링크드인은 하루 약 4.5조 개 이상, 3000 억 개 이상의 사용자 관련의 이벤트 스트림을 처리를 한다.

그런데 기존의 Messaging Platform(예, MQ)로 처리가 불가능 해지자 이벤트 스트림 처리를 위해 개발 되었고, 2011년에 Apache Software Foundation에 기부되어 오픈소스 화 되었다.

Kafka 핵심 특징 3 가지

  1. 이벤트 스트림을 안전하게 전송 (publish & Subscribe)
  2. 이벤트 스트림을 디스크에 저장 (Write to Disk)
  3. 이벤트 스트림을 분석 및 처리 (Processing & Ananlysis)

사용사례

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

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

위 내용으로는 잘 이해가 가지 않을 것 같아 다른 예시를 가지고 왔다.

  • 교통
    • 운전자 - 탑승자 매칭
    • 도착 예상시간(ETA) 업데이트
    • 실시간 차량 진단
  • 금융
    • 사기감지
    • 중복 거래 감지
  • 게임
    • 거래소 사기 감지
    • 인앱 구매
    • 실시간 추천
  • 온라인 마켓
    • 실시간 재고 정보
    • 대용량 주문의 안전한 처리

 

결론

Kafka(카프카)는 상상을 초월하는 이벤트(데이터)를 실시간으로 분산 처리 하기 위해 만들어진 이벤트 스트리밍 플랫폼이라고 할 수 있다. 

또한 성능도 매우 좋은 편이라 컴퓨터 성능에 구해받지 않고 고성능을 체감할 수 있는 플랫폼이라고도 할 수 있다.