Zookeeper란?
분산 환경에서 서버 간의 상호 조정이 필요한 다양한 서비스를 제공하는 시스템
중요 역할
- 하나의 서버에만 서비스가 집중되지 않게 서비스를 알맞게 분산해 동시에 처리하게 해준다
- 하나의 서버에서 처리한 결과를 다른 서버와도 동기화해서 데이터의 안전성을 보장한다.
- 운영(Active) 서버에 문제가 발생해서 서비스를 제공할 수 없을 경우, 다른 대기 중인(Stand-by) 서버를 Active로 바꿔서 서비스가 중지없이 제공되게 한다 (HA)
- 분산 환경을 구성하는 서버의 환경설정을 통합적으로 관리한다
분산시스템 역할
분산 시스템의 코디네이션 작업
- 개발자가 비지니스 로직 개발에 집중하도록 해줌
- 코디네이션 작업은 여러 프로세스에 대한 것
- 프로세스 들 간의 협력이나 경합을 조절
- 협럭: 프로세스들이 작업을 함께 수행하고 다른 프로세스가 진행될 수 있도록 어떤 일을 해야하는 것을 의미
- 경합: 두 프로세스가 동시에 진행될 수 없는 상황
주키퍼 장점
- 일관성, 순서, 내구성 보장
- 동기화 기본 요소를 구현
- 동시성 관련 문제를 해결하는 단순화된 해볍 제공
- 어플리케이션 데이터와 Coordination 데이터를 분리
- 파일시스템 API와 유사한 단순 API 제공 구조
구조
앙상블 서버로 구성
- zk서버는 앙상블로 구성 되어 장애처리와 대규모 처리가 가능하다
아키텍쳐- 마스터워커
- 워커는 자신이 일을 할 수 있는 상태임을 마스터에게 알리고
- 마스터는 워커에게 작업을 할당한다
- (경합활동에 해당)