본문 바로가기
OpenSource/Kafka

[Kafka] Zookeeper 기본 개념 정리

by SooooooooS 2024. 5. 9.
728x90

https://zookeeper.apache.org/
 

Apache ZooKeeper

<!-- Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or ag

zookeeper.apache.org

 

Zookeeper?

분산 코디네이션 서비스를 제공하는 오픈소스 프로젝트

  • 직접 어플리케이션 작업을 조율하는 것을 쉽게 개발할 수 있도록 도와준다.
  • 일반적으로 N개의 주키퍼 서버의 집합인 Ensemble로 구성
  • leader-follower 구조 : Leader가 Follwer에게 동기화를 위한 명령을 내린다.
  • 일반적으로 Server로 Zookeeper, Client로 Kafka로 구성

분산 코디네이션 서비스?

분산 시스템에서 시스템 간의 정보 공유, 상태 체크, 서버들 간의 동기화를 위한 락 등을 처리해주는 서비스

→ 여러 서버 간의 동기화를 담당하여 클러스터 내의 서비스들이 안정적으로 동작할 수 있도록 지원

구성

  1. Request Processor : Write 요청 처리
  2. Zab (Zookeeper Atomic Broadcast Protocol)
    • Request Processor에서 처리한 요청을 트랜잭션을 생성하여 모든 서버에게 전파한다.
    • [Leader-Propose] -> [Follower-Accept] -> [Leader-Commit] 단계로 구성된다.
  3. In-memory DB : Znode의 정보가 저장되며, 로컬 파일시스템에 Replication을 구성할 수 있다.

Ensemble

  • 일반적으로 N개의 주키퍼 서버의 집합
  • 클러스터로 구성하여 고가용성을 확보

Quorum

  • 주키퍼 앙상블을 이루고 있는 모든 서버 중 과반수 서버로 이루어진 그룹
  • 주키퍼 서버는 홀수로 구성하는 것을 권고
  • 어떤 서버에 문제가 생겼을 경우 과반수 이상의 데이터를 기준으로 일관성을 맞추므로 살아있는 노드가 과반수 이상이라면 지속적인 서비스를 제공

Zookeeper와 Kafka

카프카가 빨라질 수 있는 이유 = 하는 일이 간단해져서

이를 가능하게 한 것이 주키퍼!!

즉, 카프카는 단순히 주키퍼가 시키는 일을 하면 된다. 그에 대한 검증 또한 주키퍼가 한다.

728x90

'OpenSource > Kafka' 카테고리의 다른 글

[Kafka] 카프카 기본 용어 정리  (0) 2024.05.08