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)
구조도 2)
구조도 3)
왼쪽 카프카 적용 전, 오른쪽 카프카 적용 후
참고
https://d2.naver.com/helloworld/0853669
'DATA > Kafka' 카테고리의 다른 글
Kafka KRaft (1) | 2024.10.27 |
---|---|
큐 vs 로그 기반 메시징 시스템 (0) | 2024.08.19 |
[공유] Kafka에서 파티션 증가 없이 동시 처리량을 늘리는 방법 - Parallel Consumer (0) | 2023.12.26 |
Redis Kafka 활용방법 (0) | 2023.08.04 |
메시징 미들웨어 Kafka, RabbitMQ (0) | 2022.06.12 |
댓글