Kafka


title: 2026-04-27 author: 강병호 (이름) date: 2026-04-27 (날짜) category: TIL/강병호/2026/04 (파일 경로 : TIL/{이름}/{연}/{월}) layout: post (자유) —

  1. 핵심 구성 요소 카프카 아키텍처를 구성하는 주요 용어는 다음과 같습니다.

Producer (생산자): 이벤트를 생성하여 카프카의 Topic으로 보내는 애플리케이션입니다.

Consumer (소비자): Topic에서 메시지를 읽어서 처리하는 애플리케이션입니다.

Broker (브로커): 카프카 서버를 의미합니다. 일반적으로 여러 대의 브로커가 클러스터를 구성하여 데이터를 분산 저장합니다.

Topic (토픽): 데이터가 저장되는 카테고리입니다. 파일 시스템의 ‘폴더’와 유사한 개념입니다.

Partition (파티션): 토픽을 분할한 단위입니다. 파티션을 통해 데이터를 병렬로 처리하며, 각 파티션 내에서는 메시지 순서가 보장됩니다.

Zookeeper / KRaft: 카프카 클러스터의 메타데이터 관리 및 브로커의 상태를 관리하는 코디네이터 역할을 합니다. (최신 버전은 Zookeeper 없이 KRaft로 운영 가능)

  1. 카프카의 주요 특징 1) 분산성 및 확장성 하나의 클러스터에 여러 브로커를 추가하여 성능을 선형적으로 확장할 수 있습니다. 데이터는 여러 파티션에 나뉘어 저장되므로 병렬 처리가 용이합니다.

2) 데이터 보존 (Persistence) 메시지를 메모리가 아닌 디스크에 순차적으로 저장합니다. 설정에 따라 일정 기간 또는 일정 용량만큼 데이터를 보관할 수 있어, 소비자가 장애를 복구한 뒤 과거 데이터를 다시 읽는(Replay) 작업이 가능합니다.

3) 고가용성 (Replication) 파티션을 다른 브로커에 복제(Replication)하여 보관합니다. 특정 브로커가 다운되더라도 복제본(Follower)을 가진 다른 브로커가 리더(Leader) 역할을 승계하여 중단 없는 서비스를 제공합니다.

4) 높은 처리량 (High Throughput) Zero Copy: 데이터를 디스크에서 네트워크로 보낼 때 CPU를 거치지 않고 직접 전송하여 오버헤드를 줄입니다.

Batch 처리: 메시지를 개별적으로 보내지 않고 묶어서 전송하여 통신 효율을 높입니다.

results matching ""

    No results matching ""