elasticsearch shard 和 replica


(1)index包含多個shard
(2)每個shard都是一個最小工作單元,承載部分數據,lucene實例,完整的建立索引和處理請求的能力
(3)增減節點時,shard會自動在nodes中負載均衡
(4)primary shard和replica shard,每個document肯定只存在於某一個primary shard以及其對應的replica shard中,不可能存在於多個primary shard
(5)replica shard是primary shard的副本,負責容錯,以及承擔讀請求負載
(6)primary shard的數量在創建索引的時候就固定了,replica shard的數量可以隨時修改
(7)primary shard的默認數量是5,replica默認是1,默認有10個shard,5個primary shard,5個replica shard
(8)primary shard不能和自己的replica shard放在同一個節點上(否則節點宕機,primary shard和副本都丟失,起不到容錯的作用),但是可以和其他primary shard的replica shard放在同一個節點上

通過以下方式可以在創建索引時指定 primary shard 和 replica 的數量。

PUT /test_index
{
   "settings" : {
      "number_of_shards" : 3,
      "number_of_replicas" : 1
   }
}

 

集群狀態變化:

假設有3個節點,9個shard (3個primary shard,每個 primary shard 有 2 個 replica shard),具體分配如下表,假設 Node1 為 master

Node1 Node2 Node3
P0, R1-1, R2-1 P1, R0-1, R2-2 P2, R1-2, R0-2

1. 如果 Node1 宕機,此時集群狀態為 red, 集群會自動選舉一個節點為新的 master (假設為 Node2)

2. 新的 master 將 P0-1 這個 replica shard 升級成 primary shard, 此時 集群狀態為 yellow

3. 重新啟動 Node1 節點, 會自動更新數據,此時集群狀態為 green。


免責聲明!

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



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