<aside>
💡 참조 블로그: https://cornswrold.tistory.com/523
</aside>
-
주키퍼란
![Untitled](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/430955f2-369d-4e84-bf65-bb4c985703fe/Untitled.png)
- 분산 애플리케이션(카프카 등) 관리를 위한 안정적인 코디네이션 애플리케이션
- 안정적인 서비스를 위해 분산 애플리케이션의 정보를 중앙에 집중, 구성 관리, 그룹 관리 네이밍, 동기화 등의 서비스 제공 → 이러한 정보를 상태 정보라고 함
- 상태 정보들은 지노드(z-node)에 key=value 형태로 저장, 이 정보를 기반으로 애플리케이션들은 데이터를 주고 받음
- 지노드(z-node)는 일반적인 컴퓨터 파일/폴더의 개념
-
지노드(z-node)
![Untitled](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/feec2bc0-21e8-4133-9345-f42d577c909a/Untitled.png)
- 각 노드에는 데이터 변경 등에 대한 유효성 검사 등을 위해 버전 번호를 관리(데이터가 변경될 때마다 버전 번호가 증가)
- 주키퍼의 데이터는 모두 메모리에 저장되어 처리 속도가 빠름
- 주키퍼는 신뢰성 있는 서비스를 위해 앙상블(클러스터)이라는 호스트 세트 구성
- 앙상블로 구성되어 있는 주키퍼는 과반수 방식에 따라 살아 있는 노드 수가 과반 수 이상 유지된다면 서비스 지속 가능
- 예시
- CASE 1(주키퍼 앙상블 3대 구성)
- 노드 1대 다운 → 과반수 유지되므로 서비스 가능
- 노드 2대 다운 → 과반수 유지되지 않기 때문에 서비스 불가능
- CASE 2(주키퍼 앙상블 5대 구성)
- 노드 2대 다운 → 과반수 유지되므로 서비스 가능
- 앙상블의 개수가 많을 수록 과반수가 많아지므로 1, 2대의 다운은 감수하고 진행 가능함