Cluster, Node 란?
일반적인 Cluster 의 정의는
"여러 대의 컴퓨터들이 연결되어 하나의 시스템처럼 동작하는 컴퓨터들의 집합" 을 말한다.
Elasticsearch 도 여러대의 노드(컴퓨터와 대응되는 개념) 들이
각자의 역할을 바탕으로 연결되어 하나의 시스템처럼 동작한다.
Node 의 종류
1) 마스터 노드 (Master Node) : 클러스터 상태 관리 및 메타 데이터 관리
2) 데이터 노드 (Data Node) : 문서 색인 및 검색 요청 처리
3) 코디네이팅 노드 (Coordinating Node) : 검색 요청 처리
4) 인제스트 노드 (Ingest Node) : 색인되는 문서의 데이터 *전처리
*전처리 : 어떤 문서가 ES 내에 들어와서 저장이 되기 이전에 수정한다는 의미.
마스터 노드와 마스터 후보 노드(master-eligible node)
마스터 노드는 마스터 노드와 마스터 후보 노드(master-eligible node)로 나눌 수 있다.
1) 마스터 노드 : 현재 Cluster 내에서 마스터 노드의 역할을 하고 있는 노드
클러스터에서 딱 한대의 마스터 노드만 존재한다.
2) 마스터 후보 노드 (master-eligible node) : 마스터 노드에 문제가 생겼을 경우
마스터 노드가 될 수 있는 노드들을 말한다.
선출을 통해 마스터 후보노드 중에 마스터 노드가 뽑히게 된다.
Elasticsearch Cluster 의 특징
Elasticsearch는 여러대의 노드들이 각자의 역할을 바탕으로 연결되어
하나의 시스템처럼 동작한다.
즉, 어떤 노드에 어떤 요청을 해도 동일한 응답을 준다. (Cluster 이기 때문에)
예를 들어 아래와 같은 상황을 보자.
마스터 노드에 데이터를 요청하면 과연 어떤 식으로 처리를 할까?
일단 GET 명령이 마스터 노드로 건네어 진다.
그다음 마스터 노드에서 특정데이터를 찾기 위해 data node를
찾아가서 데이터를 가져온다.
마지막으로 요청자에게 다시 건네준다.
즉, 클러스터로 구성되어 있으면,
마스터노드가 아닌 코디네이팅 노드에게 데이터를 요청한다 해도
위와 같은 로직으로 데이터를 가져올 것이다.
물론 각각의 노드가 본인의 역할에 충실할 수 있도록 구성하는 것이 가장 중요하다.
위와 같이 데이터 노드에 바로 데이터를 요청하면
마스터에 요청할 때와 같이 필요 없는 과정이 생략되기 때문이다.
'Elasticsearch' 카테고리의 다른 글
[Elasticsearch] text, keyword 타입 (0) | 2023.03.02 |
---|---|
[Elasticsearch] 검색(Search) (0) | 2023.02.28 |
[Elasticsearch] 색인 (Indexing) (0) | 2023.02.27 |
[Elasticsearch] Shard 란? (0) | 2023.02.22 |
[Elasticsearch] Elasticsearch 란? (0) | 2023.02.20 |