ElasticSearch之集群中的節(jié)點
對官方文檔Node的閱讀筆記。
ES集群由一個或者多個ES節(jié)點組成。
ES集群中的節(jié)點,支持處理兩類通信平面,見文檔
- 集群內(nèi)節(jié)點之間的通信,官方文檔稱之為transport layer。
- 集群外的通信,處理客戶端下發(fā)的請求,比如數(shù)據(jù)的CRUD,檢索等,官方文檔稱之為HTTP layer。
通過集群內(nèi)節(jié)點的通信,節(jié)點可以獲取到集群內(nèi)所有節(jié)點的信息,比如通信地址、健康狀態(tài)、承載的索引和shard等信息。
當(dāng)集群中某節(jié)點處理客戶端下發(fā)的請求時,可以將業(yè)務(wù)請求轉(zhuǎn)發(fā)至數(shù)據(jù)相關(guān)的節(jié)點,處理業(yè)務(wù)請求。
接收到客戶端下發(fā)的請求的節(jié)點,依據(jù)官方文檔,可以稱之為接入節(jié)點或者the coordinating node。默認(rèn)情況下,集群中所有的節(jié)點都可以接入客戶端的業(yè)務(wù),因此都具備接入節(jié)點的角色。
作為接入節(jié)點,處理業(yè)務(wù)請求的過程可以劃分為如下階段:
- 轉(zhuǎn)發(fā)階段即scatter phase
- 接入節(jié)點分析業(yè)務(wù)請求,獲取索引和shard的歸屬節(jié)點。
- 接入節(jié)點將請求轉(zhuǎn)發(fā)至歸屬節(jié)點。
- 歸屬節(jié)點處理請求,將處理結(jié)果返回至接入節(jié)點。
- 收集階段即gather phase
- 接入節(jié)點處理各歸屬節(jié)點返回的數(shù)據(jù)。
- 接入節(jié)點將數(shù)據(jù)組裝為最終的結(jié)果。
- 接入節(jié)點將結(jié)果返回客戶端。
因此,作為接入節(jié)點,需要具備足夠的硬件資源,比如CPU、內(nèi)存等,否則無法正常處理各歸屬節(jié)點返回的數(shù)據(jù)。
ES節(jié)點,簡單而言,可以理解為ES進程,比如一臺主機上運行一個ES進程,或者在一臺物理主機上,運行多個ES進程。對于前述ES進程,均可以理解為不同的ES節(jié)點。
在ES集群中,存在多種角色或者職責(zé),因此從分工或者職責(zé)唯一的角度,可以為節(jié)點指定其角色,限定其職責(zé),專業(yè)化分工,提升集群的可用性。
ES集群中,通常包含如下角色:
- master
- data
- data_content
- data_hot
- data_warm
- data_cold
- data_frozen
- ingest
- ml
- remote_cluster_client
- transform
在ES的配置文件elasticsearch.yml中增加配置項node.roles,可以指定該節(jié)點的角色。配置樣例,如下:
node.roles: [ master ]
對于專職的接入節(jié)點,可以做如下配置:
node.roles: [ ]
數(shù)據(jù)的生命周期、訪問頻率、重要性、訪問數(shù)據(jù)時的時延、存儲成本等存在差異,比如
- 從生命周期角度講
- 有些數(shù)據(jù)需要長期保留。
- 有些數(shù)據(jù)可能使用完畢后即可刪除。
- 從訪問頻率角度講
- 有些數(shù)據(jù)會被經(jīng)常訪問。
- 有些數(shù)據(jù)可能經(jīng)歷一段時間的高頻訪問之后,訪問頻率逐步下降。
- 有些數(shù)據(jù)可能初期的訪問頻率不高,但在某些場景下,訪問頻率可能會突然上升,然后再次下降。
- 有些數(shù)據(jù)可能保持低頻訪問。
- 有些數(shù)據(jù)可能基本沒有訪問,比如歸檔數(shù)據(jù)、備份數(shù)據(jù)。
- 從重要性角度講
- 有些數(shù)據(jù)是關(guān)鍵數(shù)據(jù),需要長期保留,不允許丟失,假如丟失,則需要具備恢復(fù)手段。
- 有些數(shù)據(jù)雖然重要,但丟失之后重新獲取的成本比較低。
- 有些數(shù)據(jù)則可有可無,丟失也不影響最終結(jié)果。
- 從訪問時延角度講
- 應(yīng)用場景為高帶寬、高時延,比如大數(shù)據(jù)業(yè)務(wù)。
- 應(yīng)用場景為低時延、高OPS,比如檢索業(yè)務(wù)。
- 從存儲成本角度講,按照存儲介質(zhì)來劃分
- 磁帶,訪問時延大、存儲成本低,適用于數(shù)據(jù)量大,長期歸檔,訪問頻率極低的數(shù)據(jù)。
- HDD盤,訪問時延相對低一些,存儲成本相對高一些,存儲容量小,適用于歸檔、備份,訪問頻率一般的數(shù)據(jù)。
- SSD盤,訪問時延低,支持的OPS高,存儲成本更高,存儲容量低,適用于數(shù)據(jù)量相對不大,但訪問頻率相對要高一些的數(shù)據(jù)。
- 內(nèi)存,訪問時延極低,成本更高,存儲容量更低,適用于數(shù)據(jù)量很小,但訪問頻率極高的數(shù)據(jù)。
基于數(shù)據(jù)的差異,ES提供了如下角色的選項:
- data_content,適用于高頻檢索的數(shù)據(jù),ES針對這個角色,提供了必要的優(yōu)化。
- data_hot,適用于熱數(shù)據(jù),可以配置比較好的硬件、支撐高速訪問的存儲介質(zhì),保存訪問頻率高的數(shù)據(jù)。
- data_warm,適用于溫數(shù)據(jù),硬件、介質(zhì)可以選擇成本低一點,保存訪問頻率相對沒有那么高的數(shù)據(jù)。
- data_cold,適用于冷數(shù)據(jù),硬件、介質(zhì)可以選擇相對更低一點,保存訪問頻率比較低的數(shù)據(jù)。
- data_frozen,適用于極冷數(shù)據(jù),選擇容量大,成本低的硬件和介質(zhì),保存訪問頻率非常低的數(shù)據(jù)。
假如很難從業(yè)務(wù)場景區(qū)分?jǐn)?shù)據(jù)的差異,則可以直接使用角色data。
參考資料
本文來自博客園,作者:jackieathome,轉(zhuǎn)載請注明原文鏈接:http://www.rzrgm.cn/jackieathome/p/18448479

浙公網(wǎng)安備 33010602011771號