elasticsearch原理分析

2021-10-06 12:57:01 字數 1878 閱讀 3753

集群內部原理

1. 主節點(master node)

主節點負責集群層面的相關操作,管理集群變更。

通過配置 node.master: true(預設)使節點具有被選舉為 master 的資格。主節點是全域性唯一的,將從有資格成為master的節點中進行選舉。

2. 資料節點(data node)

負責儲存資料、執行資料相關操作:crud、搜尋、聚合等。資料節點對cpu、記憶體、i/o要求較高。

3. 預處理節點(ingest node)

這是從5.0版本開始引入的概念。預處理操作允許在索引文件之前,即寫入資料之前,通過事先定義好的一系列的processors(處理器)和pipeline(管道),對資料進行某種轉換、富化。

4. 協調節點(coordinating node)

客戶端請求可以傳送到集群的任何節點,每個節點都知道任意文件所處的位置,然後**這些請求,收集資料並返回給客戶端,處理客戶端請求的節點稱為協調節點。

5. 部落節點(tribe node)

tribes(部落)功能允許部落節點在多個集群之間充當聯合客戶端。

集群內部模組

cluster

cluster模組是主節點執行集群管理的封裝實現,管理集群狀態,維護集群層面的配置資訊。主要功能如下:

· 管理集群狀態,將新生成的集群狀態發布到集群所有節點。

· 呼叫allocation模組執行分片分配,決策哪些分片應該分配到哪個節點

· 在集群各節點中直接遷移分片,保持資料平衡。

allocation

封裝了分片分配相關的功能和策略,包括主分片的分配和副分片的分配,本模組由主節點呼叫。建立新索引、集群完全重啟都需要分片分配的過程。

discovery

發現模組負責發現集群中的節點,以及選舉主節點。當節點加入或退出集群時,主節點會採取相應的行動。從某種角度來說,發現模組起到類似zookeeper的作用,選主並管理集群拓撲。

gateway

負責對收到master廣播下來的集群狀態(cluster state)資料的持久化儲存,並在集群完全重啟時恢復它們。

indices

索引模組管理全域性級的索引設定,不包括索引級的(索引設定分為全域性級和每個索引級)。它還封裝了索引資料恢復功能。集群啟動階段需要的主分片恢復和副分片恢復就是在這個模組實現的。

http模組允許通過json over http的方式訪問es的api,http模組本質上是完全非同步的,這意味著沒有阻塞執行緒等待響應。使用非同步通訊進行 http 的好處是解決了 c10k 問題(10k量級的併發連線)。

在部分場景下,可考慮使用http keepalive以提公升效能。注意:不要在客戶端使用http chunking。

transport

傳輸模組用於集群內節點之間的內部通訊。從乙個節點到另乙個節點的每個請求都使用傳輸模組。

engine

engine模組封裝了對lucene的操作及translog的呼叫,它是對乙個分片讀寫操作的最終提供者。

集群啟動流程

shrink原理分析

使用shrink api縮小索引分片數。當索引縮小完成後,源索引可以刪除。

· 以相同配置建立目標索引,但是降低主分片數量。

· 從源索引的lucene分段建立硬鏈結到目的索引。如果系統不支援硬鏈結,那麼索引的所有分段都將複製到新索引,將會花費大量時間。

· 對目標索引執行恢復操作,就像乙個關閉的索引重新開啟時一樣。

Elasticsearch 架構原理

elasticsearch的一些架構設計,對我們做效能調優 故障處理,具有非常重要的影響。下面將從elasticsearch的準實時索引的實現 自動發現 rounting和replica的讀寫過程,shard的allocate控制 在傳統的資料庫中,乙個欄位存乙個值,但是這對於全文搜尋是不足的。想要...

Elasticsearch 架構原理

elasticsearch的一些架構設計,對我們做效能調優 故障處理,具有非常重要的影響。下面將從elasticsearch的準實時索引的實現 自動發現 rounting和replica的讀寫過程,shard的allocate控制 在傳統的資料庫中,乙個欄位存乙個值,但是這對於全文搜尋是不足的。想要...

elasticsearch 倒排索引原理

elasticsearch 使用一種稱為 倒排索引 的結構,它適用於快速的全文搜尋。乙個倒排索引由文件中所有不重複詞的列表構成,對於其中每個詞,有乙個包含它的文件列表。例如,假設我們有兩個文件,每個文件的content域包含如下內容 the quick brown fox jumped over t...