분산 아키텍처 Elasticsearch의 원리

ES에 설명 분산 아키텍처 원칙

이 얼굴 질문입니다

첫째, ES의 기본 개념

다음과 MySQL의 비유를 할 (단지 비유를 이해하는 데 도움이 될 것입니다) : 인덱스 인덱스 = MySQL 데이터베이스 입력 유형 = 테이블, 문서 문서 = 열 MySQL의 행, 도메인 필드 = mysql을을에는 mysql.
인덱스는 기본 조각의 수 주 파편 및 주요 사항을 결정하기 위해 작성되면이 변경 될 수의 하위 단편 복제 파편의 수를 (결정뿐만 아니라 당신이 확장의 수준을 수행 할 수 있도록 조각의 수는 변경할 수 없습니다입니다 ).
인덱스는 인덱스를 저장하기위한 하나 개 이상의 마스터 데이터 단편을 가질 수있다 각 주요 단편 인덱스에 저장된 데이터의 일부이며, 그 파편의 카피는, 메인 단편 이유 메인 너무 많이 가지고 분열과 그 조각이? 주로 클러스터 및 고 가용성의 처리량을 향상시키기 위해서이다.
역 색인
인덱스 문장 반전 무엇 요약 아닌 속성 값을 기록하는 속성 값과 기록의 위치를 결정하기 위해이 판정된다.
유추 :
Java 언어는 최고입니다
PHP 언어는 대부분의 쓰레기입니다
파이썬 최고의 언어를 배우는 것입니다
(다만 비유, 악성되지 않음)
: 단어가 역 색인 생성 후 후
ID 키워드 기사
자바 1
PHP는 2
파이썬 3
인 1,2,3
가장 한
대부분의 스팸이
가장 과학 3
1, 2 개,
1,2,3 언어
다음 위치를 얻기 위해 키워드를 검색 할 수있는 반전 된 인덱스라고 기사,

두 분산 ES 구현

ES 흰색이 여행이 클러스터를 ES, 그래서 그 과정에서 여러 컴퓨터에서 여러 ES를 시작하는 것입니다 구현을 배포했습니다.
클러스터
참고 위의 차와 동일한 슬라이스의 보조 조각의 세부 노드, 할당이 자동으로 클러스터를 할당 (당신이 약간하지 않는 기계가) 아니라고 제어하지 마십시오.
다중 자동으로 클러스터 노드 선거 마스터 노드는 등 메타 데이터 인덱스, 차 파편 및 복제 샤드 정체성 스위치 및 유지 관리를 담당합니다. 마스터는 새 마스터의 재선에 해당 클러스터를 다운되면.
하나 개의 노드가 다운되면, 주요 조각의 상단은 아직 사라되지 않는 이유는 무엇입니까? 하는 것처럼 계속 단편이어서 위해서, 기본 승강 단편의 레벨에 대응하는 서브 프래그먼트에 마스터 노드는, 높은 가용성을 달성하는 이상 수리 고장 서브 프래그먼트 는 인정되지 않고, 본입니다 왜 기본 및 보조 조각 조각 바로, 동일한 노드에있을 수없는 이유는 무엇입니까? 마스터 다운되면 마찬가지로, 새로운 마스터는 메인 및 보조 스위치이었다.
: 프로세스는 판독 및 그것으로 기입 동작, 상기
기록 :
1, 기록 동작 개시, 코디네이터 노드라고 모든 클라이언트 노드를 선택
2, 문서 ID에 따라 조정 노드, 경로 계산, 특정 프로세싱 노드로의 전달 요청
3 기본 샤드 실행 처리 노드 기입 요청, 및 복제 샤드 결국 각 실행에 분배 성공적인 복제 샤드 후 요청이 성공적으로 처리하고, 클라이언트에 통지하는 코디네이터 노드 통지되는
이러한 성공적 기본 샤드 후 같은 파라미터를 설정할 수있는 과정을 배아 줄기 자체가 매우 빠르게되기 때문에, 클라이언트에 통지되지만, 필요없는
판독 :
1, 모든 클라이언트 노드는 호출 조정자 노드 동수에게 판독 동작 선택
2, 코디네이터 노드가 경로 특정 프로세싱 노드로의 전달 요청을 계산
도 3을 참조하면, 처리 부하 분산 노드 폴링 모든 단편 코디네이터 노드로 복귀하고 클라이언트에 반환되는 결과
: 검색 판독
1, 모든 클라이언트 노드는 호출 조정자 노드 동수에게 판독 동작 선택
2 기본 및 복제에 대응하는 모든 노드에 배위 노드 검색 요청
. 3, 모든 단편을 선별하고, 코디네이터 노드가 페이징되도록 병합 코디네이터 노드 ID로 돌아온 발견 될
코디네이터 노드 ID에 따라, 마지막으로 (4) 구체적 데이터 노드는 클라이언트로 당겨

출시 여섯 개 원래 기사 · 원 찬양 한 · 전망 7237

추천

출처blog.csdn.net/qq_34864092/article/details/103892023