DE/ZooKeeper

ZooKeeper

winter0pear 2023. 8. 29. 19:53

1. ZooKeeper 필요성

  • 여러대의 서버들로 클러스터를 구성하는 분산 플랫폼에서 분산 애플리케이션 관리를 위해 안정적인 코디네이션 애플리케이션이 필요함 → 부분 실패(Partial Failure) 때문
  • Partial Failure
1. 네트워크로 연결된 두 노드 사이에서 데이터가 전송된 후, 네트워크가 끊겼을 때 송신자는 수신자가 데이터를 받았는지 여부를 알 수 없다

2. 어떤 일이 일어났는지 확인하는 방법은 수신자에게 다시 연결해서 물어보는 방법밖에 없음

3. 이런 상황을 부분 실패라고 함
  • 주키퍼를 사용하는 것으로 Partial Faliure을 줄일 수 있음

 

2. 분산 코디네이션(Coordination) 서비스란?

  • 분산 시스템에서 시스템간 정보 공유, 상태 체크, 서버들 간의 동기화를 위한 락 등을 처리해주는 서비스
  • ZooKeeper의 주요 기능
1 . 분산 잠금 및 동기화 서비스 분산된 애플리케이션에서 공유 리소스에 대한 접근을 조정하거나 순서를 지정하는데 사용구성 정보 관리 분산 시스템에서 구성 정보를 저장하고 브로드캐스트하는 데 사용될 수 있다

2. 새로운 노드가 추가되거나 기존 노드의 상태가 변경 되었을 때 ZooKeeper는 모든 노드에 이를 알릴 수 있다

3. 분산 시스템 서비스 검색(클러스터 멤버쉽) 서비스 검색에 사용될 수 있음 서비스가 시작되면 ZooKeeper에 등록하고 클러이언트는 ZooKeeper를 조회하여 필요한 서비스를 찾을 수 있다

4. 리더 선출 분산 시스템에서 리더 선출을 단순화함

 

3. ZooKeeper Architecture

  • 여러대의 서버로 전체 서비스 구성 → 앙상블 (Ensemble)
  • 분산 애플리케이션들이 각각 클라이언트가 되어 주키퍼 서버들과 커넥션을 맺은 후 상태 정보 등을 주고 받는다 Server → 주키퍼 Client → Hadoop, kafka 등

 

'DE > ZooKeeper' 카테고리의 다른 글

Zookeeper API  (0) 2023.08.30
ZooKeepr 장점과 특성  (0) 2023.08.30
Znode  (0) 2023.08.30