Kafka ZAB Protocol

헨도·2025년 4월 15일
0

Kafka

목록 보기
9/10
post-thumbnail

ZAB(Zookeeper Atomic Boradcast) Protocol

Zookeeper 에서 데이터 일관성을 보장하기 위해 사용하는 합의 프로토콜
즉, 여러 Zookeeper 서버가 동일한 데이터를 가지도록 만드는 방법이 ZAB

요약

  • 하나의 리더가 모든 쓰기를 처리하고, 나머지 서버들과 동기화하면서 과반수 동의가 있을 때만 커밋하는 방식

작동 방식

  1. 쓰기 요청이 들어오면?
  • 클라이언트가 리더에게 요청함
  • 리더는 "이거 반영해도 될까?" 하고 팔로워들에게 제안
  1. 팔로워가 응답하면?
  • 팔로워들이 "OK" 하면 응답을 보냄 (ack)
  • 과반수(ex. 3대 중 2대 이상) 응답하면 리더는 커밋 결정
  1. 커밋!
  • 리더가 "됐어! 확정이야!" 라고 커밋
  • 팔로워에게도 "이걸 반영해" 신호를 줌

특징

단일 리더 구조

항상 하나의 리더만 쓰기 처리

순서 보장

모든 서버가 같은 순서로 데이터를 처리

과반수 합의 필요

안정성 보장 (장애 상황에서도 안전하게도 동작)

복구 기능 있음

장애 후 교체 시 데이터 동기화 과정 수행

장애 상황에서는?

  • 리더가 죽으면 -> 새 리더 선출
  • 새 리더는 팔로워와 상태 맞춰서 정확한 위치부터 다시 복구 시작
profile
Junior Backend Developer

0개의 댓글