參考: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%時,去創建了一個新的索引 |
