기본

분산 환경을 통해 얻을 수 있는 장점

  • 멀티 프로세서
  • 스케일 아웃

분산 환경에서 생길 수 있는 문제점

  • 추가적인 코디네이션 서비스 구축 필요
  • 경합, 협력의 문제
  • 네트워크상에서 이루어짐
    • 메세지 지연
    • 프로세서 속도
    • 클럭 드리프트

주키퍼를 사용해 얻을 수 있는 것

  • 견고한 일관성, 순서, 내구성 보장
  • synchronization primitive 구현 제공
  • 동시성 관련 문제에 대한 솔루션 제공

마스터-워커 아키텍쳐

생길 수 있는 장애

  • 마스터 장애
  • 워커 장애
  • 통신 장애

요구사항

  • 마스터 선출 기능
  • 워커 상태 탐지 기능
  • 사용 가능한 워커 리스트 관리 기능
  • 메타데이터 관리 기능

znode

파일 시스템과 유사하게 이루어진 트리구조
각 노드는 persistent(세션이 만료되어도 znode는 보존됨)하거나 ephemeral(세션이 만료되면 삭제됨)하며, 또한 sequential(새롭게 생성되는 노드의 뒷부분에 순차 번호를 할당) 할 수 있다.
생성 삭제 등에 대한 API가 제공되고, 이는 레시피를 통해서 구현됨.

Notification

  • 주키퍼에서는 polling 대신에 watch를 등록하여 변경사항이 발생하면 Notification을 받도록 함.
  • 1회성 작업. get 작업으로 매번 다시 watch를 등록해야 함.
  • Global order으로 변경 사항의 순서 보존

Version

  • 데이터의 변경마다 버전이 증가
  • 쓰기 작업을 할 때, 자신의 버전과 서버의 버전이 다르다면 실패함

주키퍼 아키텍쳐

  • 단독 - 단독 서버로 구성됨
  • 쿼럼
    • 다수의 서버 그룹(쿼럼)으로 구성됨
    • 변경이 이루어 질 때, 한 서버에서 일어난 변경은 앙상블 내의 다른 서버로 전파되어 복제되는데 쿼럼은 이러한 복제가 이용가능한 수준까지 이루어졌다는 최소 기준
    • 짝수로 할 때보다 홀수로 할 때 서버 장애 허용 범위가 커짐

results matching ""

    No results matching ""