序言
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放在 同一個節點上
單node環境下創建index
(1)單node環境下,創建一個index,有3個primary shard,3個replica shard
(2)集群status是yellow
(3)這個時候,只會將3個primary shard分配到僅有的一個node上去,另外3個replica shard是無法分配的
(4)集群可以正常工作,但是一旦出現節點宕機,數據全部丟失,而且集群不可用,無法承接任何請求
PUT /test_index
{
"settings" : {
"number_of_shards" : 3,
"number_of_replicas" : 1
}
}
2個node環境下replica shard是如何分配的
1.replica shard分配:3個primary shard,3個replica shard,1 node
2.primary ---> replica同步
3.讀請求:primary/replica