Kafka Zookeeper

헨도·2025년 4월 15일
0

Kafka

목록 보기
7/10
post-thumbnail

Zookeeper

  • Apache Zookeeper 는 분산 시스템을 위한 중앙 코디네이터

Kafka 는 분산 시스템이기 때문에

  • 노드(=Broker) 간의 메타 데이터 관리
  • 리더 선출
  • 상태 동기화

같은 작업이 필요한데, 이런 부분을 Kafka 혼자하기에 어려움이 있다.

그래서 Zookeeper 에 위임하는 구조

Zookeeper 를 쓰는 이유

브로커 등록

  • Kafka 브로커들이 Zooker 에 자신을 등록해서 누가 살아있는지 알게 한다.

컨트롤러 선출

  • 여러 브로커 중에서 리더(컨트롤러)를 선출한다.

토픽/파티션 메타데이터 관리

  • 토픽 생성, 파티션 정보, 리더 정보 등을 저장한다.

상태 감시

  • 브로커나 컨슈머가 죽었는지 감시 (Watcher 가능)

최근 변화

Kafka Without Zookeeper

이제는 Kafka 가 Zookeeper 가 없어도 동작이 가능하다!

  • 이걸 KRaft 모드 (Kafka Raft Metadata mode) 라고 부름
  • Kafka 가 자체적으로 메타데이터 관리, 컨트롤러 선출 등을 하도록 변경
  • 결과적으로 Zookeeper 의존성 제거

Zookeeper 구조

설명

Client

  • Kafka 같은 앱들이 Zookeeper 에 연결해서 읽기/쓰기

Ensemble

  • Zookeeper 서버들의 집합 (보통 3대 이상으로 구성)

Leader

  • 쓰기 요청 처리, Follower 와 데이터 동기화

Follower

  • 읽기 요청 처리, Leader 복제

Data Tree

  • Zookeeper 내부 데이터는 znode 라는 구조로 트리 형태로 저장 (파일 시스템처럼)
profile
Junior Backend Developer

0개의 댓글