分布式文件存儲:在前面章節,我們討論了如何將數據放入索引然后檢索數據。不過我們有意略過了許多關于數據是如何在集群中分布和獲取的相關技術細節。這種使用和細節分離是刻意為之的——你不需要知道數據在Elasticsearch如何分布它就會很好的工作。在這個章節,我們將深入研究這些內部細節,技術細節會幫助你了解數據是村和存儲在分布式系統的路由一個文檔到一個分布:當你索引的一個文檔, 它是存儲在一個單獨的主分片上。Elasticsearch 是如何知道一個文檔屬于哪個分片?當我們創建文檔時,它是如何知道是應該存儲在分片1還是分片2上的呢?處理不能是隨機的,因為我們將來需要檢查文檔。實時上,它根據一個簡單的算法決定:shard = hash(routing) % number_of_PRimary_shards主和復制分片交互:為了闡述意圖, 我們想象我有一個cluster 有3個節點組成。它包含一個索引叫做blogs 有兩個主分片。每個主分片有2個副本。相同的副本是不會被分配到相同的節點,因此我們的cluster 看起來像 一個cluster 有3個節點和一個索引圖1, 一個集群有3個節點和一個索引我們可以發送我們的請求到任何節點在集群里。每個節點是完全有能力服務任何請求。每個節點知道每個文檔在集群中的位置,因此可以直接轉發請求到需要的節點。在下面的例子中,我們發送所有我們的請求到Node1,我們稱之為協調節點注意:當發送請求時,最好的做法是循環通過所有節點請求,這樣可以平衡負載Creating, Indexing, and Deleting a Document 創建創建,index,和刪除請求是寫操作, 必須在主節點分片成功完成才能被復制到任何相關的復制分片
新聞熱點
疑難解答