elasticsearch 시작 과정 (4) 각 모듈 소개

6480 단어 elasticsearch

elasticsearch 시작 과정 (4) 각 모듈 소개


es 프로그램이 인터넷 노드에 실행되었을 때, 이 종류의 구조 방법에서 각 모듈 추가, 주입 등 서비스에 의존했다.이러한 서비스는es가 운행할 때의 각종 기능 서비스이다.
1.modules.add(new Version. Module(version)) Version에서는 각 버전의 version 대상을 유지하고 있으며, CURRENT는 최신 대상으로 버전 id,luceneVersion,snapshot,build 등의 정보를 포함하고 있다.
2.modules.dd (new Cache Recycler Module (settings) 는 여러 개의 Recycler를 초기화하고, Recycler에는 hppc (고성능 원시 집합) 라이브러리의 맵이 봉인되어 있습니다.또한 리셋 메커니즘을 사용하여 대기열을 통해 이 맵의 대상을 회수하고 새로 사용할 수 있으며 각 맵은 Recycler를 사용하여 호출되고threadLocal,cocurrent,softreference를 추가하여 설정에 따라 Recycler는 서로 다른 전략을 가질 수 있습니다.여러 곳에서 집합을 사용하지 않도록 여러 번 초기화해서 메모리를 신청해야 한다.쓰레기 수거를 줄인다.
3. modules.dd(new Page Cache Recycler Module(settings)는 여러 개의 Recycler를 초기화했고 Recycler에는 각각의 데이터를 봉인했다.byte[],int[],long[],double[],Object[]는 똑같이 재사용 메커니즘을 사용했고threadLocal,cocurrent,softreference를 추가했다. 설정에 따라 Recycler는 서로 다른 전략을 사용할 수 있다.여러 곳에서 집합을 사용하지 않도록 여러 번 초기화해서 메모리를 신청해야 한다.쓰레기 수거를 줄인다.
4.modules.add(new Plugins Module(settings,plugins Service)plugin 모듈은 각종 설정에 따라:es-plugin.properties 설정, setting에서plugin.types 설정,es의plugin 경로 등으로 PluginInfo 대상,Plugin 대상을 생성합니다. 여기는 반사를 대량으로 사용합니다.
5.modules.add (new Settings Module (settings) 설정 모듈은 es의 각종 설정 정보를 유지합니다.
6.modules.dd(new NodeModule(this) 노드 모듈은 node,nodesetting,nodeService를 초기화하고 node가 필요로 하는 각 서비스의 대상 속성을 초기화합니다. 예를 들어threadPool,Discovery,TransportService,Indices Service 등입니다.노드 정보(NodeInfo), 노드 통계(NodeStats) 객체를 NodeService에서 얻을 수 있습니다.NodeSettings Service는 등록된 노드의 최신 구성을 나타냅니다.
7.modules.add (new Network Module () 네트워크 서비스, Network 서비스, settings의 네트워크 설정을 분석하고 InetAddress 대상을 가져오는 데 사용
8.modules.add (new NodeCacheModule (settings) 노드 캐시, ByteBuffer Cache를 초기화합니다. ByteBuffer를 가져오는 데 사용됩니다.
9.modules.dd(new Script Module(settings)는 주로 둘의 초기화(1) Mvel Script Engine 서비스(mvel은 자바 기반 표현식 언어)의 초기화이고, (2)settings의script에 따른다.native.?.NativeScriptEngine Service를 초기화하는 type의 구성
10,modules.dd(new Environment Module(environment)es의 환경 변수 정보 모듈은 설정에 따라 홈 파일,workfile,logsfile,datafiles 등 경로를 초기화합니다.
11.modules.dd(new Environment Module(environment) 노드 환경 모듈은 환경 모듈에 따라 노드 환경을 초기화하고 노드가 데이터를 저장하는 경로 그룹, 노드 인덱스 위치 그룹, 디렉터리 잠금 그룹을 초기화합니다.
12.modules.add (new Cluster NameModule (settings) 클러스터 이름은 구성 파일에 따라 클러스터 이름을 초기화하며 기본 클러스터 이름은 elasticsearch입니다.
13.modules.add (new ThreadPoolModule (settings) 스레드 탱크 모듈은 서로 다른 서비스에 서로 다른 스레드 탱크를 초기화합니다.아래의 상량에 따라 대응하는 스레드 탱크를 초기화합니다
public static final String SAME = "same";
    public static final String GENERIC = "generic";
    public static final String GET = "get";
    public static final String INDEX = "index";
    public static final String BULK = "bulk";
    public static final String SEARCH = "search";
    public static final String SUGGEST = "suggest";
    public static final String PERCOLATE = "percolate";
    public static final String MANAGEMENT = "management";
    public static final String FLUSH = "flush";
    public static final String MERGE = "merge";
    public static final String REFRESH = "refresh";
    public static final String WARMER = "warmer";
    public static final String SNAPSHOT = "snapshot";
    public static final String OPTIMIZE = "optimize";

14.modules.add 노드 발견 모듈
15.modules.dd(new Cluster Module(settings) 집단 모듈은 집단과 관련된 서비스를 초기화한다. 주로 인덱스와 관련된 서비스, 예를 들어 Meta Data Service, Meta Data Create Index Service, Meta Data Delete Index Service, Meta Data Mapping Service, Routing Service 등이다. 주로 다음과 같은 기능을 포함한다. 인덱스 생성, 삭제, 맵핑 생성, 인덱스 별명, 업데이트, 인덱스 템플릿, 루트, 슬라이드 상태, 맵핑 리셋, 리셋, 맵핑집단 정보.
16.modules.add (new RestModule (settings)rest 모듈
17.modules.dd(new Transport Module(settings) 노드 통신 모듈, 노드마다 네 가지 종류의 연결, low/med/high/ping, low는 높은 부하의api, 예를 들어 일괄 처리,med는 조회나 색인 단일 문서를 처리하고,high는 집단 상태,ping은 노드와 다른 몇 개의 포인트 사이에 ping 요청을 보내는 데 사용한다.
18.modules.add (new HttpServerModule (settings) 는transport와 유사하며 http로 통신합니다.
19.modules.dd(new Rivers Module(settings)es의river 서비스로 다른 데이터 원본의 데이터를 동기화하는 데 사용되며, 사용자는 리버를 사용자 정의하여Rivers Module를 통해 등록할 수 있습니다.리버 인터페이스 좀 봅시다.
package org.elasticsearch.river;

/**
 * Allows to import data into elasticsearch via plugin
 * Gets allocated on a node and eventually automatically re-allocated if needed
 */
public interface River extends RiverComponent {

/**
 * Called whenever the river is registered on a node, which can happen when:
 * 1) the river _meta document gets indexed
 * 2) an already registered river gets started on a node
 */
void start();

/**
 * Called when the river is closed on a node, which can happen when:
 * 1) the river is deleted by deleting its type through the delete mapping api
 * 2) the node where the river is allocated is shut down or the river gets rerouted to another node
 */
void close();
}

20.modules.dd(new Indices Module(settings) 인덱스 모듈은 인덱스 관련 서비스, 예를 들어 Indices Cluster State 서비스, Indices Terms Filter Cache, Indices Field Data Cache, Indices Store, Indexing Memory Controller 등을 초기화합니다.
21.modules.add(new Search Module()) 쿼리 모듈, 쿼리 관련 서비스 초기화
22.modules.add(new Action Module(false))elasticsearch의 대부분 동작은 상응하는 action이 있는데 이런 action은 action 패키지에 있다.
23.modules.dd(new Monitor Module(settings)es의 각종 모니터링 서비스, 예를 들어network, jvm, fs 등.
24.modules.add(new Gateway Module(settings)gateway 모듈은 그룹full restart가 있을 때의 메타데이터(state) 복구를 책임집니다.
25.modules.add (new NodeClientModule () es 클라이언트 모듈
26.modules.add (new BulkUdpModule () udp bulk, 최신 6.3 버전에서 제거되었습니다. 테이블에서 bulkapi로 대체합니다.
27.modules.add(new ShapeModule) 지리적 위치 모듈
28.modules.add (new Percolator Module () percolate는 색인에 저장된 검색 조건과 일치하는데,percolator 작업은 검색 조건을 등록한 다음percolate 요청 (문서 포함) 을 통해 이 요청에 맞는 검색 조건을 조회합니다.https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-percolate-query.html#_sample_usage
29.modules.add(new Resource Watcher Module) 리소스 모니터링 모듈은 다른 es 서비스에서 모니터링해야 할 정보를 리소스 모니터링 서비스에 등록할 수 있습니다.ResourceWatcher Service는 등록된 클래스의 인터페이스 방법을 정기적으로 되돌려줍니다. 기본 간격은 60s입니다.
30.modules.add (new Repositories Module () Snapshot repository 모듈.색인이나 그룹 단계의 조작을 맡고 마스터에서만 호출할 수 있습니다.
31.modules.dd (new Tribe Module () tribe 서비스, tribe node는 여러 개의 그룹을 연결할 수 있으며, 모든 그룹의 상태를 수신하고 하나의 전역 그룹의 상태로 통합할 수 있으며, 모든 노드의 데이터를 읽고 쓸 수 있습니다. 통합된 전역 그룹의 상태는 거의 모든 작업이 하나의 그룹과 같은 방식으로 작동한다는 것을 의미합니다. 분포식 검색, 인덱스 등입니다.5.4.0에서 폐기

좋은 웹페이지 즐겨찾기