Apache
[개념] Zookeeper란?
박서녕이
2019. 12. 27. 09:57
주키퍼란?
- 분산 코디네이션 서비스 제공
- 코디네이션 서비스는 분산 시스템 내에서 중요한 상태정보를 유지하기 때문에 고가용성을 제공해야함
- 서버와 클라이언트로 구성
- 서버앙상블 : n개 서버로 단일 주키퍼 클러스터 구성
- 클라이언트 : 앙상블에 속한 서버에 연결하여 서비스 사용
주키퍼 아키텍처
- znode는 데이터를 저장할 수 있는 디렉토리 구조를 제공하며, 디렉토리와 비슷한 구조로 byte[]형태의 정보를 저장
- Persistent Node : 노드에 데이터를 저장하면 일부러 삭제하지 않는 이상 삭제되지 않고 영구히 저장
- Ephemeral Node : 노드를 생성한 클라이언트의 세션이 연결되어 있을 경우만 유효, 즉 클라이언트 연결이 끊어지는 순간 삭제 -> 이를 통해 클라이언트가 연결되어있는지 아닌지 판단
- Sequence Node : 노드를 생성할 때 자동으로 Sequent 번호가 붙는 노드
- Watcher는 클라이언트가 znode에 watch를 걸어 놓으면 해당 znode가 변경이 되었을 때 클라이언트로 callback호출을 날려서 클라이언트에 해당 znode가 변경되었음을 알려주고 해당 watcher는 삭제됨
- 클라이언트들은 주키퍼서버들로 이루어진 앙상블에 접근하여 znode의 데이터를 읽거나 씀
- 쓰기 과정
- 클라이언트가 특정 서버로 접속하여 데이터 업데이트
- 업데이트 된 서버는 leader 서버에 그 데이터를 알리고 업데이트
- leader 서버는 그정보를 나머지 follower 서버들에게 broadcast
- 그 정보를 받은 follower 서버들도 데이터 업데이트
특징
'Apache' Related Articles