1. What is Kafka?
Definition
파이프라인, 스트리밍 분석, 데이터 통합 및 미션 크리티컬 애플리케이션을 위해 설계된 고성능 분산 이벤트 스트리밍 플랫폼
Pub-Sub 모델의 메시지 큐 형태로 동작하며 분산환경에 특화
Pub-Sub 모델
- 중앙에 메시징 시스템 서버를 두고, 메시지를 보내고(publish), 받는(subscribe) 형태의 통신
- N:M으로 연결되는 것이 아니기 때문에 확장성이 용이
Before Kafka
문제점
- 통합/ 중앙화된 전송 영역이 없음 → end-to-end 연결이 갈수록 복잡해짐
- 문제 발생 시 관련 여러 시스템을 확인해야 함 → 문제 해결이 어려워짐하드웨어 증설 같은 작업이 어려움
- 데이터 파이프라인 관리의 어려움
- 연결된 시스템 마다 제각기 다른 방식으로 구현될 수 있음 → 파이프라인 통합(확장)이 어려움
After Kafka
Source와 Target의 커플링을 느슨하게 만들어줌
Kafka Essential Terms
- Producer : 카프카에 메시지를 만들어서 전달하는 클라이언트를 총칭
- Consumer : 카프카로부터 데이터를 받아 소비하는 클라이언트
- Kafka or Kafka Cluster : 프로듀서와 컨슈머 사이에서 메시지 브로커 역할을 하는 애플리케이션 또는 그 클러스터
- Zookeeper : 카프카가 정상적으로 동작할 수 있도록 카프카의 메타데이터 저장, 브로커의 노드 관리 등의 역할을 하는 애플리케이션 또는 그 앙상블
- Broker : 카프카 애플리케이션이 설치된 서버 또는 노드
- Topic : 카프카에서 메시지 피드를 구분하기 위한 논리적인 단위
- Partition : 토픽에 속한 메시지들이 실제로 저장되는 물리적 공간을 파티션
- Segment : 프로듀서가 전송한 실제 메시지가 로그 파일 형태로 브로커의 로컬 디스크에 저장된 것
- Message or Record : 프로듀서와 컨슈머가 브로커에서 전송하거나 읽어가는 데이터 조각
- Replication : 각 메시지들을 여러 개로 복제해서 카프카 클러스터 내 다른 브로커에 분산시키는 동작
'Kafka' 카테고리의 다른 글
[Apache Kafka] 3. 카프카 클러스터 운영 (0) | 2024.10.09 |
---|---|
[Apache Kafka] 2. 카프카 기본 개념 설명(2) (3) | 2024.10.08 |
[Apache Kafka] 2. 카프카 기본 개념 설명(1) (1) | 2024.10.01 |
[Apache Kafka] 1. 아파치 카프카의 역사와 미래 (0) | 2024.09.30 |
Kafka - PostgreSQL to MariaDB (2) (0) | 2024.06.30 |