ElasticSearch-03-簡單理解ElasticSearch中的概念,以及Shard&Replica的解釋

elasticsearch的核心概念與簡單舉例

1、Near Realtime(NRT):

近實時,兩個意思,從寫入數據到數據可以被搜索到有一個小延遲(大概1秒);基於es執行搜索和分析可以達到秒級;

2、Cluster:集羣

包含多個節點,每個節點屬於哪個集羣是通過一個配置(集羣名稱,默認是elasticsearch)來決定的,
對於中小型應用來說,剛開始一個集羣就一個節點很正常;
比如,在上文
ElasticSearch-02-使用Docker在Mac系統上搭建兩個節點的ElasticSearch集羣
(並同時創建kibana,cerebro兩個容器): https://blog.csdn.net/yangqian201175/article/details/99664126 
中在本機上通過Docker部署的便是一個擁有兩個節點的集羣,elasticsearch_cluster_product;

在這裏插入圖片描述

3、Node:節點

集羣中的一個節點,節點也有一個名稱(默認是隨機分配的),
節點名稱很重要(在執行運維管理操作的時候),
默認節點會去加入一個名稱爲“elasticsearch”的集羣,
如果直接啓動一堆節點,那麼它們會自動組成一個elasticsearch集羣,
一個節點的elasticsearch部署也可以稱之爲一個集羣;
在上文02中部署後的兩個節點命名如下圖所示:

在這裏插入圖片描述

4、Document&field:文檔

es中的最小數據單元,一個document可以是一條客戶數據,一條商品分類數據,一條訂單數據,通常用JSON數據結構表示,
每個index下的type中,都可以去存儲多個document。一個document裏面有多個field,每個field就是一個數據字段,
比如大家在工作中通過Kibana去查詢某個服務的日誌,那麼諸多服務的日誌通過換行截取,收集以後便是一份一份的文檔,
而文檔中所包含的服務名稱,訪問TxId,logDetails等信息便是其中的filed;
簡單舉例如下圖所示:

在這裏插入圖片描述

5、Index:索引

包含一堆有相似結構的文檔數據,比如可以有一個客戶索引,商品分類索引,訂單索引,索引有一個名稱。
一個index包含很多document,一個index就代表了一類類似的或者相同的document。
還是按照大家熟悉的日誌系統舉例,我們的日誌組成結構,
如果是業務服務,日誌一般情況下會通過切面的形式進行統一處理,
或者在手機的時候進行統一處理成格式基本一致的日誌入到ElasticSearch中,
那麼我們不同的測試場景,業務服務,數據服務,不同的環境,便是不同的Index;
簡單的舉例如下圖所示:

在這裏插入圖片描述

6、Type:類型

每個索引裏都可以有一個或多個type,type是index中的一個邏輯數據分類,一個type下的document,
都有相同的field,比如博客系統,有一個索引,可以定義用戶數據type,博客數據type,評論數據type(不再贅述)

7、shard

單臺機器無法存儲大量數據,es可以將一個索引中的數據切分爲多個shard,分佈在多臺服務器上存儲。
有了shard就可以橫向擴展,存儲更多數據,讓搜索和分析等操作分佈到多臺服務器上去執行,提升吞吐量和性能。

8、replica

任何一個服務器隨時可能故障或宕機,此時shard可能就會丟失,因此可以爲每個shard創建多個replica副本。
replica可以在shard故障時提供備用服務,保證數據不丟失,多個replica還可以提升搜索操作的吞吐量和性能。
primary shard(建立索引時一次設置,不能修改,默認5個),
replica shard(隨時修改數量,默認1個),
默認每個索引10個shard,5個primary shard,5個replica shard,最小的高可用配置,是2臺服務器。

在這裏插入圖片描述
如上圖所示,其實每個shard都是一個lucene index,在讀取,搜索的時候replica可以起到分攤的作用從而提高性能;

類比理解

ES 數據庫
Index
Type
Document
field
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章