Kafka

김소은·2026년 1월 20일

브로커 < 클러스터
브로커 : 메시지 저장, 전달. 이벤트 버스 역할
클러스터: Kafka에서는 여러 개의 브로커를 지칭함.

클러스터를 구성하는 이유:

  1. 부하를 분산하기 위함. 데이터가 너무 많아지면 서버(>브로커) 하나로는 감당 불가
  2. 장애 내구성/내결함성 : 서버 몇 개가 고장나도 다른 서버들이 역할을 수행함.

토픽: 데이터 종류를 구별하기 위함.
파티션: 토픽에 드렁오는 데이터를 여러 단위로 나눈 것. 병목 현상에 대응.
오프셋: 파티션 내 각 데이터가 각지는 고유 번호. 0, 1, 2, ...
세그먼트: 파티션(파일)을 작은 단위로 나눠 저장한 것. 검색에 용이, 장애 - Replication
Zookeeper: 오케스트라로서의 역할 수행. 전체적인 관리.


Partition

삭제가 불가능, 빠른 성능, 파티션>세그먼트.

Segment

활성 세트먼트: 현재/실시간 데이터 저장됨. 나머지 일반 세그먼트들에는 과거의 정보가 저장돼 있음. 활성 세그먼트 용량이 가득 차게 되면 새로운 활성 세그먼트가 생성됨.
세그먼트 파일명은 시장 오프셋 번호임.

한 쌍의 파일들로 구성됨. .log .index .timeindex

컨트롤러 브로커: 리더 브로커를 선출하고, 전파하는 기능을 수행함.

profile
개발자

0개의 댓글