Apache ZooKeeper
Apache ZooKeeper![]() | |
개발자 | Apache 소프트웨어 재단 |
---|---|
안정된 릴리스 | 3.8.0 / 2022년 2월 [1] ; 전( |
저장소 | ZooKeeper 저장소 |
기입처 | 자바 |
운영 체제 | 크로스 플랫폼 |
유형 | 분산 컴퓨팅 |
면허증. | Apache 라이센스 2.0 |
웹 사이트 | zookeeper |
Apache ZooKeeper는 클라우드 애플리케이션의 [2]신뢰성 높은 분산 조정을 위한 오픈 소스 서버입니다.Apache Software Foundation의 프로젝트입니다.
ZooKeeper는 기본적으로 계층형 키 값 저장소를 제공하는 분산 시스템용 서비스입니다. 이 서비스는 대규모 분산 시스템을 위한 분산 구성 서비스, 동기화 서비스 및 이름 지정 레지스트리를 제공하기 위해 사용됩니다(사용 [3]사례 참조).ZooKeeper는 Hadoop의 하위 프로젝트였지만 현재는 그 자체로 최상위 Apache 프로젝트입니다.
개요
ZooKeeper의 아키텍처는 다중 서비스를 통해 고가용성을 지원합니다.따라서 클라이언트는 첫 번째 ZooKeeper 리더가 응답하지 않을 경우 다른 ZooKeeper 리더에게 문의할 수 있습니다.ZooKeeper 노드는 파일 시스템이나 트리 데이터 구조와 같은 계층 이름 공간에 데이터를 저장합니다.클라이언트는 노드를 읽고 쓸 수 있으며, 이와 같이 공유 설정 서비스를 사용할 수 있습니다.ZooKeeper는 업데이트를 완전히 주문하는 원자 방송 시스템으로 볼 수 있습니다.ZooKeeper Atomic Broadcast(ZAB) 프로토콜은 시스템의 [4]핵심입니다.
ZooKeeper는 Yelp, Rackspace, Yahoo!,[5] Odnoklassniki, Reddit,[6] NetApp SolidFire,[7] [8]Meta, Twitter[9] 및 eBay와 같은 오픈 소스 엔터프라이즈 검색 시스템에서 사용됩니다.[10]
ZooKeeper는 Google의 Chuby 잠금[11][12] 서비스를 본떠 만든 것으로, 원래 Yahoo!에서 개발되었으며, ZooKeeper 서버의 로컬 로그 파일에 상태를 저장함으로써 빅데이터 클러스터에서 실행되는 프로세스를 합리화하기 위해 개발되었습니다.이러한 서버는 클라이언트머신과 통신하여 정보를 제공합니다.ZooKeeper는 분산형 빅데이터 애플리케이션 도입 중에 발생한 버그를 수정하기 위해 개발되었습니다.
Apache ZooKeeper의 주요 기능은 다음과 같습니다.
- 신뢰성 높은 시스템:이 시스템은 노드에 장애가 발생해도 계속 작동하기 때문에 매우 안정적입니다.
- 심플한 아키텍처:ZooKeeper의 아키텍처는 프로세스를 조정하는 데 도움이 되는 공유 계층 네임스페이스가 있기 때문에 매우 단순합니다.
- 고속 처리: ZooKeeper는 특히 "읽기 우위" 워크로드(읽기가 쓰기보다 훨씬 많은 워크로드)에서 속도가 빠릅니다.
- 스케일러블:노드를 추가하여 ZooKeeper의 성능을 향상시킬 수 있습니다.
아키텍처
ZooKeeper 아키텍처에 관한 일반적인 용어는 다음과 같습니다.
- 노드: 클러스터에 설치된 시스템
- ZNode: 클러스터 내의 다른 노드에 의해 상태가 갱신되는 노드
- 클라이언트 응용 프로그램:분산 응용 프로그램과 상호 작용하는 도구
- 서버 응용 프로그램:클라이언트 애플리케이션이 공통 인터페이스를 사용하여 상호 작용할 수 있도록 합니다.
클러스터 내의 서비스는 복제되어 서버 세트('앙상블'이라고 불린다)에 저장됩니다.서버 세트에는 각각 데이터 트리 전체의 상태 데이터베이스와 트랜잭션 로그 및 스냅샷이 영속적으로 저장되어 있습니다.복수의 클라이언트애플리케이션이 서버에 접속할 수 있어 각 클라이언트는 TCP 접속을 유지하고, 이 TCP 접속을 통해 요구와 하트비트를 송신해, 응답을 수신해,[13] 이벤트를 감시합니다.
사용 사례
ZooKeeper의 일반적인 사용 사례는 다음과 같습니다.
클라이언트 라이브러리
ZooKeeper 배포에 포함된 클라이언트 라이브러리 외에도 Apache Curator 및 Kazoo 등의 다수의 서드파티 라이브러리를 사용할 수 있습니다.이 라이브러리는 ZooKeeper를 보다 쉽게 사용할 수 있으며 추가 기능, 추가 프로그래밍 언어 등을 추가합니다.
ZooKeeper를 사용한 Apache 프로젝트
「 」를 참조해 주세요.
레퍼런스
- ^ "Apache ZooKeeper - Releases". Retrieved 20 March 2022.
- ^ "Apache Zookeeper4". Retrieved 31 January 2021.
- ^ "Index - Apache ZooKeeper - Apache Software Foundation". cwiki.apache.org. Retrieved 2016-08-26.
- ^ "Zookeeper Overview".
- ^ "ZooKeeper/Powered By". Archived from the original on 2013-12-09. Retrieved 2012-01-25.
- ^ "Why Reddit was down on Aug 11".
- ^ "5 Big DaaS Challenges and How to Overcome Them NetApp Newsroom". NetApp Newsroom. 2016-06-20. Retrieved 2017-05-24.[영구 데드링크]
- ^ "Location-Aware Distribution: Configuring servers at scale". Facebook Code. 2018-07-19. Retrieved 2018-07-20.
- ^ "ZooKeeper at Twitter". Twitter Engineering Blog. 2018-10-11. Retrieved 2018-12-08.
- ^ "SolrCloud".
- ^ Burrows, Mike (2006). "The Chubby lock service for loosely-coupled distributed systems". 7th USENIX Symposium on Operating Systems Design and Implementation (OSDI).
- ^ Chandra, Tushar Deepak; Griesemer, Robert; Redstone, Joshua (2007). "Paxos Made Live - An Engineering Perspective (2006 Invited Talk)". Google Research. Retrieved 2020-03-03.
- ^ "Zookeeper".