Elasticsearch之集群內(nèi)的原理

集群健康

GET /_cluster/health

在一個不包含任何索引的空集群中,它將會有一個類似于如下所示的返回內(nèi)容:

{
   "cluster_name":          "elasticsearch",
   "status":                "green", 
   "timed_out":             false,
   "number_of_nodes":       1,
   "number_of_data_nodes":  1,
   "active_primary_shards": 0,
   "active_shards":         0,
   "relocating_shards":     0,
   "initializing_shards":   0,
   "unassigned_shards":     0
}

status 字段指示著當(dāng)前集群在總體上是否工作正常。它的三種顏色含義如下:

  1. green
    所有的主分片和副本分片都正常運行。
  2. yellow
    所有的主分片都正常運行,但不是所有的副本分片都正常運行。
  3. red
    有主分片沒能正常運行。

分片(shards)與副本(replica)

  1. 一個 分片 是一個底層的 工作單元 ,它僅保存了 全部數(shù)據(jù)中的一部分。 在分片內(nèi)部機制中,一個分片是一個 Lucene 的實例,以及它本身就是一個完整的搜索引擎。 我們的文檔被存儲和索引到分片內(nèi),但是應(yīng)用程序是直接與索引而不是與分片進行交互。
  2. Elasticsearch 是利用分片將數(shù)據(jù)分發(fā)到集群內(nèi)各處的。分片是數(shù)據(jù)的容器,文檔保存在分片內(nèi),分片又被分配到集群內(nèi)的各個節(jié)點里。 當(dāng)你的集群規(guī)模擴大或者縮小時, Elasticsearch 會自動的在各節(jié)點中遷移分片,使得數(shù)據(jù)仍然均勻分布在集群里。
  3. 一個分片可以是 主 分片或者 副本 分片。 索引內(nèi)任意一個文檔都歸屬于一個主分片,所以主分片的數(shù)目決定著索引能夠保存的最大數(shù)據(jù)量。
  4. 一個副本分片只是一個主分片的拷貝。 副本分片作為硬件故障時保護數(shù)據(jù)不丟失的冗余備份,并為搜索和返回文檔等讀操作提供服務(wù)。
  5. 在索引建立的時候就已經(jīng)確定了主分片數(shù),但是副本分片數(shù)可以隨時修改。
  6. 讓我們在包含一個空節(jié)點的集群內(nèi)創(chuàng)建名為 blogs 的索引。 索引在默認情況下會被分配5個主分片, 但是為了演示目的,我們將分配3個主分片和一份副本(每個主分片擁有一個副本分片):
PUT /blogs
{
   "settings" : {
      "number_of_shards" : 3,
      "number_of_replicas" : 1
   }
  1. 所有新近被索引的文檔都將會保存在主分片上,然后被并行的復(fù)制到對應(yīng)的副本分片上。這就保證了我們既可以從主分片又可以從副本分片上獲得文檔。

更多擴容

主分片的數(shù)目在索引創(chuàng)建時 就已經(jīng)確定了下來。實際上,這個數(shù)目定義了這個索引能夠 存儲 的最大數(shù)據(jù)量。(實際大小取決于你的數(shù)據(jù)、硬件和使用場景。) 但是,讀操作——搜索和返回數(shù)據(jù)——可以同時被主分片 或 副本分片所處理,所以當(dāng)你擁有越多的副本分片時,也將擁有越高的吞吐量。

在運行中的集群上是可以動態(tài)調(diào)整副本分片數(shù)目的 ,我們可以按需伸縮集群。讓我們把副本數(shù)從默認的 1 增加到 2 :

PUT /blogs/_settings
{
   "number_of_replicas" : 2
}

blogs 索引現(xiàn)在擁有9個分片:3個主分片和6個副本分片。 這意味著我們可以將集群擴容到9個節(jié)點,每個節(jié)點上一個分片。相比原來3個節(jié)點時,集群搜索性能可以提升 3 倍。

參考資料

Elasticsearch: 權(quán)威指南

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容