ElasticSearch兩個節點的情況下,shard是如何分配的

fallinjava發表於2019-03-08

背景

在中小型企業開發中,一般的採用的是兩個節點來作為叢集(也有可能是單機叢集),我們現在一個indexß,需要儲存在2個節點中。

介紹

本文將介紹在兩個node情況下,shard是如果分配的,這裡只說兩個node是因為兩個node已經可以組成一個完整的叢集了,所以只要是兩個或者兩個以上的node都是像本文一樣進行分配shard的。

所有主分片在一臺機器上

先來介紹一下所有paimary shard都在一個節點上面的情況,replica shard在另一臺節點上面,如圖有兩個節點,一個索引,索引被分成5個primary shard和一個replica shard

ElasticSearch兩個節點的情況下,shard是如何分配的
下圖將展示所有分片分在同一個node上面的情況, 相當於所有的主分片儲存在一臺機器上面,副分片也存在一臺機器上面,這個並沒有違背primary shard 和 replica shard 不能存在同一臺機器上面的原則。
ElasticSearch兩個節點的情況下,shard是如何分配的

主分片不在一臺機器上

這裡就介紹一下所有的主分片不在同一臺機器上面的情況,所有的主分片不在同一臺機器上面的時候,那麼也就意味著這裡是可能主副分片存放在一起,還是先看下沒有進行分片的情況下的樣子。

ElasticSearch兩個節點的情況下,shard是如何分配的
下圖就是primary shard 和 replica shard 不在同一臺節點上面分片過後可能產生的狀態。
ElasticSearch兩個節點的情況下,shard是如何分配的

相關文章