본문 바로가기
DATA/Kafka

아파치 카프카 Kafka 란?

by bzerome240 2022. 2. 5.

 

Apache Kafka

: Distributed Event Streaming Platform 분산 이벤트 스트리밍 플랫폼

: 데이터의 생산자와 소비자를 중개하는 메시징 시스템

 

 

Event Streaming

: 데이터베이스, 센서, 애플리케이션 등의 이벤트 소스에서 이벤트 스트림의 형태로 실시간으로 데이터를 캡처하는 방식

나중에 검색할 수 있도록 이벤트 스트림을 영구적으로 저장

필요에 따라 이벤트 스트림을 다른 목적지 기술로 라우팅 가능

ex) 증권 거래소, 은행 등에서 실시간 금융거래 처리

ex) 여행 사업 모바일 애플리케이션에서의 고객 주문 수집 후 즉시 대응

 

 

kafka 특징

  • 다른 장비가 망가지더라도 잘 돌아간다. 일정 시간 다운돼도 데이터를 보관해 준다.
  • Queue를 기반으로 데이터 순서가 보장된다
  • 처리 속도가 빠르다
  • publish & subscribe 모델을 지원한다.

 


관련 용어 설명

 

Kafka Cluster

: 메세지를 저장하는 저장소

 

Topic

: 메시지를 구분하는 단위 ex) 폴더

: 데이터를 주고받는 카테고리

  • Producer, Consumer들은 자신이 생성 혹은 소비할 Topic 이름을 알아야 한다.

 

Partition

: 토픽이 나누어지는 작은 단위

  • Topic을 물리적으로 몇 개의 분할된 Queue 형태로 나눠 관리할지 지정한다.
    • ex) 특정 Topic이 3개의 Partition으로 구성되어 있다면 3개의 Queue가 존재하고, 각각 Queue에는 독립적으로 데이터가 들어갈 수 있다.
  • 하나의 토픽을 여러 파티션으로 나누어 데이터를 병렬로 처리할 수 있게 해줍니다.
  • Partition의 개수가 많을수록 동시에 클러스터에 데이터를 더 빠르게 받아들일 수 있다.

 

Brocker

: 카프카 서버

: 데이터를 관리하고 클라이언트의 요청을 처리하는 역할

  • n개의 브로커 중 1대는 컨트롤러 기능 수행
  • 메세지를 나눠서 저장, 이중화 처리, 장애가 나면 대체한다.
  • 여러 브로커가 모여 하나의 카프카 클러스터를 이룹니다.
  • 데이터가 많아지면 여러 브로커에 분산시켜 처리할 수 있습니다.

 

주키퍼 클러스터

: 카프카 클러스터 관리

카프카 클러스터와 관련된 정보가 기록되고 관리된다.

 

Producer

: 카프카에 데이터를 보내는 역할을 하는 애플리케이션이나 시스템

ex) 웹사이트에서 사용자의 행동 데이터를 실시간으로 수집해 카프카로 보내는 시스템

 

Consumer

: 카프카로부터 데이터를 가져가는 역할을 하는 애플리케이션

ex) 카프카에 저장된 데이터를 분석하거나 다른 시스템에 넘길 때

 

 


 

Kafka의 기본 구조

데이터 생산자 (Producer)가 데이터를 kafka 클러스터로 전송할 수 있도록 Producer API 제공

데이터 소비자 (Consumer)가 데이터를 읽을 수 있도록 Consumer API 제공

구조도 1)

https://d2.naver.com/helloworld/0853669

구조도 2)

http://www.chidoo.me/index.php/2016/11/06/building-a-messaging-system-with-kafka/

구조도 3)

https://freedeveloper.tistory.com/396?category=909995


왼쪽 카프카 적용 전, 오른쪽 카프카 적용 후 

https://freedeveloper.tistory.com/350

 


 

참고

 

Kafka를 이용한 메시징 시스템 구성하기

최근의 개발 경향은 확실히 마이크로서비스를 지향한다.  가능하면 작은 어플리케이션을 만든다.  그리고 이 어플리케이션들의 소위 콜라보(Collaboration)로 하나의 시스템이 만들어진다.  혹은

www.chidoo.me

https://d2.naver.com/helloworld/0853669

 

Apache Kafka

Apache Kafka: A Distributed Streaming Platform.

kafka.apache.org

 

728x90
반응형

댓글