ElasticSeaerch(彈性搜索數據庫)中集群、節點、副本和分片的區別


參考:https://my.oschina.net/kenblog/blog/3009800

https://blog.csdn.net/qq_32106647/article/details/99292402

 

簡單總結下:

1、集群cluster:

集群顧名思義就是多個相同集群名稱的es節點組合在一起。相當於一個集群就是一個班級,班級下面的學生就是節點。

如果只有一個節點在運行就稱為單節點。

 

2、節點node:

我們可以簡單的理解為一個es運行實例就是一個節點。

當你啟動一個es的時候,就運行了一個節點。

備注:其實在實際生產服務器環境部署中,一台服務器只會部署一個es。因為es特別耗cpu和內存,所以多個節點的部署會造成服務器資源搶占,反而降低了es的性能。

 

3、副本replica

是指同一份數據被保存到N個機器上,每個機器上都是想同的數據。

副本顧名思義就是主分片primary shard的備份副本,如果主分片有3個,那么一個副本replica就對應有1X3=3個replica shard副本分片。

副本分片數量計算公式 = 副本數量repilca num X 主分片數量primary shard num

一個索引的所有分片數量計算公式=副本數量repilca num X 主分片數量primary shard num + 主分片數量 primary shard num

比如:一個索引有3個主分片,兩個副本,那么就有6個副本分片。

一個索引可以創建0-N個副本,es默認創建的副本數量為1。

replica副本就是es高可用和快速響應搜索的關鍵。

 

4、分片shard:

是指一份數據被分離開保存到N個機器上,N個機器上的數據組合起來是一份數據。

因為ES是個分布式的搜索引擎, 所以索引通常都會分解成不同部分, 而這些分布在不同節點的數據就是分片,一個分片只存儲一部分數據,所有分片加起來就是一個完整的索引數據。

分片分為primary shard主分片和replica副本分片。

必須創建主分片,副本分片可以沒有。

一個索引可以創建多個分片數量,es默認創建的就是5個主分片數量,可以根據自己的實際業務確定主分片數量,但是需要注意的是主分片數量一旦確定創建就無法進行修改。

 

5、索引index

索引就類似於關系型數據庫的數據庫,我們把數據庫建立好,然后就把數據存到index中。

一個es(單節點或者集群)可以有很多個索引

 

分片與副本的關系

每個主分片(primary shard)不會和副本分片(replica shard)存在於同一個節點中,有效的保證es的數據高可用性。

例如1:比如一個索引有3個分片和1副本,那么一共就有3*2=6個分片,3個是主分片,3個是副本分片,每個主分片都會對應一個副本分片。

例如2:只有2個節點,但是有3個分片和2個副本,這樣的情況就會導致分片無法完全分配,因為主分片和副本分片不能存在於同一個節點中。

 

集群的健康狀態

Kibana的Dev Tool 上輸入 get _cluster/health

 

 

status 說明
green 主分片與副本都正常分片
yellow 主分片全部正常分片,有副本分片未能正常分配
red 有主分片未能正常分配,例如,當服務器的磁盤容量超過85%時,去創建了一個新的索引


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM