익명 사용자
로그인하지 않음
토론
기여
계정 만들기
로그인
IT 위키
검색
아파치 주키퍼
편집하기
IT 위키
이름공간
문서
토론
더 보기
더 보기
문서 행위
읽기
편집
원본 편집
역사
경고:
로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다.
로그인
하거나
계정을 생성하면
편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
스팸 방지 검사입니다. 이것을 입력하지
마세요
!
아파치 주키퍼(Apache ZooKeeper)는 대규모 분산 시스템에서 구성 정보 관리, 이름 서비스, 동기화, 그룹 관리 등을 지원하는 '''중앙 집중식 분산 코디네이터'''이다. 노드 간의 일관성과 고가용성을 유지하기 위해 설계되었으며, 다양한 분산 애플리케이션에서 핵심 인프라로 사용된다. ==개념== *주키퍼는 클라이언트와 서버 간의 '''일관된 상태 공유'''를 위한 중앙 저장소 역할 *'''분산 환경에서의 동기화 문제''' 해결을 위한 도구 *'''간단한 API로 복잡한 분산 시스템 기능''' 구현 가능 *Paxos를 단순화한 '''Zab(Zookeeper Atomic Broadcast)''' 프로토콜을 사용하여 데이터 복제 및 합의 처리 ==주요 기능== *'''구성 정보 저장''' **클러스터 구성, 서비스 주소, 포트 등 공유 정보 관리 *'''분산 락(Distributed Lock)''' **하나의 작업을 하나의 노드만 실행하도록 제어 *'''리더 선출(Leader Election)''' **다수 노드 중 하나를 리더로 자동 선정 *'''이벤트 알림 및 워치(Watch)''' **데이터 변경 감지 시 클라이언트에게 알림 제공 *'''노드 그룹 관리''' **클러스터 내 서비스 인스턴스의 동적 등록 및 조회 == 데이터 모델 == * 주키퍼는 파일 시스템과 유사한 트리 구조의 '''계층적 네임스페이스'''를 사용함 * 트리의 각 노드를 '''znode'''라고 부르며, 경로(path)로 접근 가능 * znode에는 데이터와 메타데이터(버전, 타임스탬프, 자식 노드 수 등)를 포함할 수 있음 * 각 znode는 다음 중 하나로 생성됨: ** '''영속 노드(Persistent znode)''': 삭제 요청이 없으면 유지됨 ** '''임시 노드(Ephemeral znode)''': 클라이언트 세션 종료 시 자동 삭제됨 ** '''시퀀스 노드(Sequential znode)''': 자동 증가 번호가 붙은 노드 생성 (영속 또는 임시 가능) 예시 트리 구조: <pre> / ├── app │ ├── config │ └── servers │ ├── server1 │ └── server2 </pre> * 워치 기능을 통해 특정 znode의 변화(생성, 삭제, 데이터 변경 등)를 감시 가능 * 트리 구조는 이름 서비스, 설정 정보 저장, 동기화 구조 구성에 적합 ==특징== *읽기 작업은 빠르고, 쓰기 작업은 느릴 수 있음 (일관성 우선 모델) *다중 서버로 구성된 클러스터 기반 → 고가용성 보장 *최소 3개 이상의 서버(쿼럼 구조)로 구성해야 안정성 확보 ==사용 예시== *[[Apache Kafka]]의 브로커 메타데이터 관리 *[[Hadoop]] 클러스터의 이름 노드 활성/비활성 관리 *[[HBase]]의 마스터 선출 및 메타 데이터 공유 *마이크로서비스 환경에서 서비스 디스커버리 ==구조== *클라이언트는 주키퍼 서버에 연결하여 znode를 읽고 쓰며, 워치를 설정 *서버는 Leader-Follower 구조로 구성됨 *Zab 프로토콜을 통해 데이터 일관성과 장애 복구 수행 ==주키퍼 vs etcd vs Consul== {| class="wikitable" !항목!!ZooKeeper!!etcd!!Consul |- |합의 알고리즘||Zab||Raft||Raft |- |데이터 모델||트리(znode)||key-value||key-value + 서비스 디스커버리 |- |주요 용도||동기화, 리더 선출||설정 관리, Kubernetes||서비스 디스커버리, 헬스 체크 |} ==같이 보기== *[[분산 시스템]] *[[분산 락]] *[[Kafka]] *[[Hadoop]] *[[etcd]] *[[Consul]] ==참고 문헌== *Apache ZooKeeper 공식 문서: https://zookeeper.apache.org/ *Hunt, P. et al. (2010). ZooKeeper: Wait-free coordination for internet-scale systems. USENIX ATC *"Designing Data-Intensive Applications" by Martin Kleppmann [[분류:분산 컴퓨팅]] [[분류:하둡 에코시스템]]
요약:
IT 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는
IT 위키:저작권
문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다.
저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소
편집 도움말
(새 창에서 열림)
둘러보기
둘러보기
대문
최근 바뀜
광고
위키 도구
위키 도구
특수 문서 목록
문서 도구
문서 도구
사용자 문서 도구
더 보기
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보
문서 기록