Elasticsearch整體介紹

Elasticsearch就是爲高可用和高可擴展而生,能夠經過添加更多的服務器來水平擴展。node

空集羣

  • 主節點(Master Node):集羣中的一個結點會被選爲主節點,它負責整個集羣的變化,好比建立索引或者刪除索引,以及對集羣中結點的增長和刪除。主節點不須要參與到文檔級別的變化或者搜索中,這就意味着主節點不會由於流量的增大而成爲瓶頸。任何結點均可以成爲主節點。git

  • 我只啓動了一個節點,因此天然這個結點就成爲了主節點,所以如今所構建的集羣就是一個單節點集羣。做爲用戶,我能夠與集羣中的任意一個節點通訊,包括主節點。每一個節點都知道文檔在那個節點上,而且它能夠轉發請求到相應的結點。咱們訪問的結點負責收集各個節點返回的數據,最後一塊兒返回給客戶端。這一切都由Elasticsearch處理。github

集羣健康 (Cluster Health)

咱們在Elasticsearch集羣中能夠監控不少信息,其中最重要的一項就是集羣的健康,集羣健康有三種狀態:greenyellored服務器

curl -XGET localhost:9200/_cluster/health?pretty

若是一個集羣中沒有任何索引,返回一下信息:併發

{
   "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
}

當我在集羣是上創建了索引後,返回以下信息:curl

{
  "cluster_name" : "elasticsearch",
  "status" : "yellow",
  "timed_out" : false,
  "number_of_nodes" : 1,
  "number_of_data_nodes" : 1,
  "active_primary_shards" : 5,
  "active_shards" : 5,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 5
}
  • green:全部的主要分片(Primary Shard)和複製分片(Replica Shard)均可用elasticsearch

  • yellow:全部的主分片均可用,可是並非全部的複製分片均可用ide

  • red:不是全部的主要分片均可用ui

下面介紹分片,包括主分片和複製分片。搜索引擎

分片 (Shards)

  • 爲了將數據添加到ES,咱們須要索引(index),在邏輯上,index是存儲數據的地方,而在實際上,index是一個用來指向一個或者多個分片的的邏輯命名空間

  • 一個分片是一個最小級別的「工做單元」,它保存了索引中全部數據的一部分,一個分片是一個Lucene實例,而且它自己就是一個完整的搜索引擎咱們的文檔存儲在分片中,而且在分片中被索引。咱們的應用程序不會直接和分片通訊,取而代之的是直接和索引通訊

  • 分片是Elasticsearch在集羣中分發數據的關鍵。把分片想象成數據的容器,文檔存儲在分片中,而後分片分配到你集羣中的節點上。當集羣擴容或者縮小,Elasticsearch會自動在節點間遷移分片,使得集羣能夠保持平衡。

  • 分片能夠分爲主分片(primary shard)複製分片(replica shard)索引中的每一個文檔屬於一個單獨的主分片,因此主分片的數量決定了索引中最多可以存儲多少數據。

  • 複製分片是主分片的一個副本,用來防止硬件故障致使的數據丟失,同時能夠提供讀請求,好比搜索或者從別的shards取回文檔。

  • 當索引建立的時候,主分片的數量就肯定了,可是複製分片能夠隨時調整。

  • 文檔的索引首先被存儲在主分片上,而後併發複製到對應的複製節點上。這能夠確保咱們的數據在主節點和複製節點上均可以被檢索到。

  • 再次強調,主分片的數量在索引被建立時已經肯定,這個數量定義了你能存儲到索引裏數據的最大數量。然而,主分片和複製分片均可以處理讀請求——搜索或者文檔檢索,因此數據的冗餘越多,咱們能處理的搜索吞吐量就越大。

參考:[https://github.com/looly/elasticsearch-definitive-guide-cn]


若有錯誤,歡迎指正:)

相關文章
相關標籤/搜索