Kafka?
링크드인 사내 프로그램에서 출발하여 정식 Apache 오픈소스로 등록된 분산 이벤트 스트리밍 플랫폼
Architecture
간단히 알아보기
이름 설명
주키퍼(ZooKeeper) | 카프카의 메타데이터(metadata) 관리 및 브로커의 정상상태 점검(health check)을 담당합니다. |
카프카(Kafka) 또는 카프카 클러스터(Kafka cluster) | 아파치 프로젝트 애플리케이션 이름입니다. 여러 대의 브로커를 구성한 클러스터를 의미합니다. |
브로커(broker) | 카프카 애플리케이션이 설치된 서버 또는 노드를 말합니다. |
프로듀서(producer) | 카프카로 메시지를 보내는 역할을 하는 클라이언트를 총칭합니다. |
컨슈머(consumer) | 카프카에서 메시지를 꺼내가는 역할을 하는 클라이언트를 총칭합니다. |
토픽(topic) | 카프카는 메시지 피드들을 토픽으로 구분하고, 각 토픽의 이름은 카프카 내에서 고유합니다. |
파티션(partition) | 병렬 처리 및 고성능을 얻기 위해 하나의 토픽을 여러 개로 나눈 것을 말합니다. |
세그먼트(segment) | 프로듀서가 전송한 실제 메시지가 브로커의 로컬 디스크에 저장되는 파일을 말합니다. |
메시지(message) 또는 레코드(record) | 프로듀서가 브로커로 전송하거나 컨슈머가 읽어가는 데이터 조각을 말합니다. |
특징
- Producer와 Consumer의 분리 (Pub / Sub 방식)
- 멀티 Producer, 멀티 Consumer
- Disk에 메시지 저장
- 용이한 확장성
- 분산 처리, 배치 처리 등 다양한 기법을 사용한 높은 성능
- 컨슈머 Pull 방식(다른 메시지 브로커들과의 차이)
활용 용도
- 로그 시스템
- Event Driven Architecture
- 메세지 큐
참고
책 -카프카 실전부터 운영까지
'DataOps > Kafka' 카테고리의 다른 글
[if(kakao)2022] 카프카, 대규모 클러스터 운영 후기 정리 (0) | 2023.09.29 |
---|---|
[카프카] Rebalancing (0) | 2023.09.06 |
[Kafka] UI Tools 분석글 공유 (0) | 2023.03.13 |
[Kafka] 토픽 Naming Convention 고민 (0) | 2023.03.09 |
[KSR] 카프라 스키마 레지스트리(Kafka Schema Registry) 란? (0) | 2023.03.09 |
댓글