-
Kafka 기본개념 정리Spring Boot/DB 2024. 4. 16. 01:29
1. Kafka 기본 용어
- Producer의 messge 저장 대상 Broker는 기본 라운드로빈 방식으로 결정됨
- Key를 지정해서 원하는 Broker에만 저장하는 방식도 제공
2. Kafka란?
- 링크드인에서 2010년 아래와 같은 문제 해결하기위해 개발, 2011년 아파치 오픈소스로 공개
- 실시간 데이터 처리 문제
- 데이터 파이프라인 구축 및 확장 문제
- 다양한 시스템과의 연동
- 분산 이벤트 스트리밍 플랫폼이라고 공식 페이지에서 소개하고 있음
- 포츈 100대 기업 80% 이상이 사용 중 (제조업, 은행, 보험, 통신사 . . . 광범위한 산업군)
3. Kafka 특징/사용용도
- 카프카 핵심 특징
- 빠른 데이터 전송, 높은 처리량, 낮은 지연 시간
- 파티션 파일 OS 페이지 캐시 사용
- Zero Copy (디스크 버퍼 → 네트워크 버퍼) 방식 차용
- Broker가 하는일이 적어서 빠름
- 데이터 batch 처리가 가능함
- 쉬운 확장성
- 느리면 브로커 추가, 파티션 추가, 컨슈머 추가 쉽게 가능 (처리량(쓰로풋) 증대)
- 장애 대처
- 리플케이션을 통한 고가용성 확보
- 적어도 한 번 전송 방식(at least once)
- 백프레셔 핸들링
- 카프카 클라이언트는 Pull 방식 동작 → 속도 조절 가능
- 메시지 순서 보장 제공
- 커뮤니티 규모 큼
- 개발 편의 (프로듀서, 컨슈머 분리 - 병렬 개발 가능)
- 빠른 데이터 전송, 높은 처리량, 낮은 지연 시간
- 카프카 기본 사용처
- 메시지 발행, 소비에 사용 (고속)
- 웹 사이트 고객 활동 추적
- 지표 수집
- 로그 수집
- 데이터 스트리밍 처리
- 이벤트 소싱
- 분산 시스템의 커밋 로그
출처 : 최범균님 유튜브
https://www.youtube.com/watch?v=0Ssx7jJJADI
https://www.youtube.com/watch?v=geMtm17ofPY
https://www.youtube.com/watch?v=xqrIDHbGjOY
반응형'Spring Boot > DB' 카테고리의 다른 글
MySQL 관련해 신경쓰면 좋은 것 (feat. 성능) (0) 2024.11.13 MySQL - 외래키(Foreign Key)를 써야할까? (1) 2024.08.14 DB Replication이란? 사용 이유 (0) 2024.03.19 [DB] UUID를 고유 값이나 Key로 사용하면 안되는 이유 (0) 2023.06.30 [DB] ACID란? Transaction이란? (0) 2023.06.28