일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 보안
- 블록체인
- 거래
- 투자
- loopback
- 이더리움
- 시장
- angular
- Linux
- ps4
- game
- 리뷰
- 부동산
- 스마트 컨트랙트
- Three
- strongloop
- review
- 쿠버네티스
- 게임
- kubernetes
- threejs
- 스마트 계약
- 젤다 왕눈
- 탈중앙화
- Games
- 비트코인
- 주식
- 암호화폐
- PC
- Docker
- Today
- Total
BaeBox
Znode 는 무엇인가? 본문
※ 주의. 솔직히 나도 제대로 이해하고 있는지 잘 모르겠음. 반드시 다른 글과 교차대조 하면서 볼 것!!
※ 주의. 내 글 보고 zookeeper를 잘못 이해해도 책임 안 짐.
앞선 글에 zookeeper 는 분산 어플리케이션을 구성하기 쉽게 도와주는 서비스(솔직히 난 서비스라는 말 어렵더라. 그냥 도구라고 하자) 라고 설명한 바 있다.
zookeeper 는 그런 기능을 어떤 방식으로 제공하고 있는 걸까?
znode 를 설명하기 위해서는 zookeeper 의 데이터 모델을 알아야한다.
znode는 클러스터를 구성하고 있는 각각의 서버(컴퓨터)를 뜻한다.
조금 삼천포로 새서 예를 하나 들어보겠다.
당신은 군인이다. 갓 입대한 짬찌이다. 행보관이 청소하라고 시켰는데 빗자루가 하나밖에 없다. 근데 일할 사람은 넷이다. 내 장담하는데 한 명 일하고, 셋은 옆에서 논다고 누가 안 갈굴까 안절부절하면서 멀뚱멀뚱 남 청소하는거 쳐다보고 있을거다. 아니면, 그 중 힘센놈이 '너 딴거해' 하면서 빗자루 뺏어서 지가 청소하던가. (이것이 선점)
어쨌든, 혼자 일하느니 못한 상황을 막기 위해서는 관리자가 필요하다. 우리는 그것을 leader 라고 부른다.
znode 중에서도 leader 가 있다. zookeeper 가 알아서 선출해준다. 아래 글에 어떻게 선출해주는지 나와있다. 난 안 읽어봤다.
https://www.outbrain.com/techblog/2011/07/leader-election-with-zookeeper/
어쨌든, leader 노드의 역할은 우리가 생각하는 일반적인 리더의 역할과 같다. 보고받고 일시키고 뭐 그런거다. 알릴 사항이 있으면 다른 노드에 알리면서(broadcast) 모든 znode 의 데이터를 동일하게 유지한다.
The name space provided by ZooKeeper is much like that of a standard file system. => zookeeper 가 제공하는 name space 가 파일 시스템과 비슷한 기능을 제공한다는 것은 알겠다. 근데 그게 대체 무슨 소리야 ㅋㅋㅋㅋㅋㅋ
일단 내가 (약식으로)이해한 것은 이렇다.
zookeeper 는 zookeeper 클러스터 내에서 동작하는 일종의 파일 시스템을 제공한다. 그리고 이 파일시스템은 리눅스마냥 slash(/) 로 경로(path)를 구분한다. zookeeper 서비스 내부의 각 노드는 이 경로명을 통해 구분된다.
* 아래 노드의 설명 참조(https://www.slideshare.net/sunnykwak90/apache-zoo-keeper)
zookeeper 는 기본적으로 두 가지 타입의 노드를 가진다.
- Persistent Node (영구 노드)
- 명시적으로 삭제되기 전까지 존재
- Ephemeral Node (임시 노드)
- 세션이 유지되는 동안 존재
- 자식 노드를 가질 수 없다
옵션으로 영구/임시 노드 모두 Sequential node (순차 노드)로 만들 수 있다. 이는 경로의 끝에 일정하게 증가하는 카운터를 추가하는 것이다.
*정리
znode는 클러스터를 구성하고 있는 각각의 서버(컴퓨터)를 뜻한다.
zookeeper service 는 일종의 파일 시스템을 제공한다. 그 구분은 node 의 이름으로 한다.
znode 는 영구/임시 두 가지로 나뉜다.
'개발 관련' 카테고리의 다른 글
Apache Storm (0) | 2019.10.21 |
---|---|
사전지식 (0) | 2019.10.21 |
Zokeeper (0) | 2019.10.21 |
분산 어플리케이션(Distributed app/system) (0) | 2019.10.21 |
Matrix ( transformation) (0) | 2019.10.21 |