해당 문서는 Zookeeper에 대해서 간략하게 정리하기 위한 문서이다.
현재는 책에 있는 내용만 보고, 추후 더 공부할 예정...
ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services. All of these kinds of services are used in some form or another by distributed applications. Each time they are implemented there is a lot of work that goes into fixing the bugs and race conditions that are inevitable. Because of the difficulty of implementing these kinds of services, applications initially usually skimp on them, which make them brittle in the presence of change and difficult to manage. Even when done correctly, different implementations of these services lead to management complexity when the applications are deployed.
> https://zookeeper.apache.org/
분산 코디네이터 서비스를 제공하는 오픈 소스 프로젝트
분산 환경의 경우, 수십~수천 대의 서버로 구성되는데, 서버 간의 정보를 쉽고 안전아게 공유해야만 효율적으로 관리할 수 있다.
코디네이터 시스템은 이런 공유된 정보를 이용해 서버간의 중요한 이벤트(분산락, 순서제어,부하 분산, 네임서비스 등)를 관리하면서 상호작용을 조율해준다.
현재 hadoop, kafka, Storm등의 분산 노드 관리에 사용 중이다.
Zookeeper는 3대 이상의 홀수 개의 서버로 구성돼야 하며, 그 중 1대는 Leader서버가 되고 나머지는 Follow 서버가 된다.