DE/ZooKeeper 4

Zookeeper API

1. Zookeeper API 주키퍼는 계층적인 네임스페이스를 제공하며 네임스페이스 내에 존재하는 모든 개별 노드를 znode라고 부른다 모든 znode는 데이터(바이트 배열)을 가질수 있고 자식 znode를 가질 수도 있다 znode는 상대경로를 지원하지 않고 절대 경로만 지원한다 데이터는 항상 전체를 읽고 쓰는 구조 znode는 1M 이하의 데이터와 자식 노드를 가질 수 있다 영속 종류에 따른 지노드 구분 구분 설명 영구 노드 (Persistent Nodes) - 클라이언트가 명시적으로 삭제하기 전까지 존재 임시 노드 (Ephemeral Nodes) - 세션이 유지되는 동안 활성 - 세션 종료 시 주키퍼에 의해 삭제 - 자식 노드를 가질수 없다 순차 노드 (Sequence Nodes) - 경로의 끝에..

DE/ZooKeeper 2023.08.30

ZooKeepr 장점과 특성

1. Zookeeper 장점 일관성, 순서, 지속성을 보장함 동기화를 위한 primirive(기초적인 요소)를 쉽게 구현 가능 분산 시스템에서 동시성으로 인해 생기는 잘못된 동작 차단 2. Zookeeper 특성 고가용성 시스템이 상당히 오랜기간동안 정상 운영되도록 함 느슨한 상호작용 연결 상호작용 참여자의 익명성을 보장 서로의 존재나 네트워크 세부사항을 모르더라도 프로세스가 서로 상호 발견, 소통이 가능 라이브러리 상호조정 패턴에 대한 구현물과 방법을 오픈 소스로 제공 뛰어난 처리량 순차적인 일관성 클라이언트로부터의 업데이트는 보내졌을 때 순서대로 적용 원자성 업데이트는 성공하거나 실패하거나 둘 중 하나이다 단일 시스템 이미지 클라이언트는 연결된 서버에 관계없이 같은 시스템을 바라보는 것처럼 동작함 신..

DE/ZooKeeper 2023.08.30

Znode

1. Znode 상태 정보들은 znode라고 불리는 곳에 key-value 형태로 저장 znode에 저장된 것을 이용하여 분산 애플리케이션들이 서로 데이터를 주고 받는다 각 znode는 데이터 변경 등에 대한 유효겅 검사 등을 위해 버전 번호를 관리 (데이터가 변동될 때 마다 지노드의 버전 번호가 증가) 주키퍼에 저장되는 데이터는 모두 메모리에 저장되어 처리량이 매우 크고 속도 또한 빠름 2. Zookeeper Ensemble 주키퍼는 과반수 방식에 따라 살아 있는 노드 수가 과반 수 이상 유지된다면 지속적인 서비스를 가능하게 함 일반적으로 3대 혹은 5대의 서버로 앙상블을 구성함 case1. Ensemble 3 - 노드 1대 다운 ➝ 과반수 유지 되므로 서비스 가능 - 노드 2대 다운 ➝ 과반수가 유지..

DE/ZooKeeper 2023.08.30

ZooKeeper

1. ZooKeeper 필요성 여러대의 서버들로 클러스터를 구성하는 분산 플랫폼에서 분산 애플리케이션 관리를 위해 안정적인 코디네이션 애플리케이션이 필요함 → 부분 실패(Partial Failure) 때문 Partial Failure 1. 네트워크로 연결된 두 노드 사이에서 데이터가 전송된 후, 네트워크가 끊겼을 때 송신자는 수신자가 데이터를 받았는지 여부를 알 수 없다 2. 어떤 일이 일어났는지 확인하는 방법은 수신자에게 다시 연결해서 물어보는 방법밖에 없음 3. 이런 상황을 부분 실패라고 함 주키퍼를 사용하는 것으로 Partial Faliure을 줄일 수 있음 2. 분산 코디네이션(Coordination) 서비스란? 분산 시스템에서 시스템간 정보 공유, 상태 체크, 서버들 간의 동기화를 위한 락 등을..

DE/ZooKeeper 2023.08.29