카프카의 기본 개념을 간단히 소개
*자세한 설명 생략
▷ 카프카(Kafka) 란?
- 고성능 분산형 데이터 스트리밍 플랫폼
*스트리밍 플랫폼(Streaming Platform) : 데이터 스트림을 읽고 쓰고 저장하고 처리하는 시스템
*데이터 스트림(이벤트 스트림, 스트리밍 데이터) : 끊임없는 지속적인 데이터 흐름
- Message Broker 역할을 할 수 있도록 구현(발행/구독)
- 기존 메시징 시스템과는 달리 Message를 메모리 대신 파일 시스템에 쌓아두고 관리
▷ 카프카(Kafka) 주요 구성
- KafkaCluster : 여러 개의 Broker를 구성한 클러스터(확장성, 고가용성)
- Broker : 카프카 애플리케이션이 설치된 서버 또는 노드
*3개 이상의 Broker로 구성하여 사용하는 것을 권장
- Producer : Message 발행
- Consumer : Message 수신
- Message : Producer가 Broker에게 전송하거나 Consumer가 읽어가는 데이터 조각(record)
*Message는 Key와 Value로 구성
- Topic : 데이터를 구분하기 위해 사용하는 단위(Message 이름)
*Topic에는 한 개 이상의 Partition이 존재
- Partition : 하나의 Topic을 여러 개로 나눈 그룹, Message를 저장하는 물리적인 파일
*병렬 처리, 분산 처리를 통한 성능 향상
*Message를 저장하는 물리적인 파일
*append-only 파일 : 새 Message는 맨 뒤에 추가
- Offset : Consumer에서 Message를 어디까지 읽었는지 저장하는 값
- Zookeeper : 분산 애플리케이션(Broker)을 관리를 위한 코디네이션 시스템
*KafkaCluster에 각 Broker의 동작 상태를 파악하고 상태 정보를 Producer 및 Consumer에게 전달
▷ 참고
▷ 관련 글
'▶ Back-End > 개념 요약' 카테고리의 다른 글
HTML5 란? (0) | 2023.03.09 |
---|---|
WebSocket vs Socket vs Socket I.O (2) | 2023.02.17 |
메시지 큐(Message Queue)란? (0) | 2023.02.06 |
서블릿(Servlet) 이란? (0) | 2023.02.03 |
Spring 이란? (0) | 2023.02.01 |
댓글