2014-01-26 65 views
0

我有4個服務器上運行,其中每個服務器有1個指標與1個碎片和0副本ES:ElasticSearch分配索引服務器

Server1: Name Server 
Server2: Address Server 
Server3: Health Chart Server 
Server4: HealthID/SSN Server 

我用這SO answer禁用多播和將所有集羣這些服務器在雲中4端口9300的單播主機陣列中的服務器IP適用於我(在每臺服務器上配置yml)。

我的問題是如何設置每個索引駐留在其受尊重的服務器上(並且僅在該服務器上)?我通過本地主機在每臺服務器上建立索引,並且不能容錯,也不需要它。我想要將這些服務器集羣使用別名,我可以在其中搜索所有這些服務器(正在運行)。如果服務器停機,那麼它的索引也是如此。所以呢 - 我無法搜索它,這很好,但我不希望索引路由到集羣中的另一臺服務器,我只是希望它停止運行。然後,如果我重新啓動服務器,它會重新加入羣集並再次搜索。

我無法根據ES Guide找出解決方案,這可能是我的疏忽,但無法找到有關如何實施此設計的更多信息。

回答

3

我很好奇你爲什麼要控制整個索引的分配位置。這意味着你不想擁有任何副本(因爲副本永遠不會被分配到主機所在的同一臺機器上)? 通常碎片的分佈是均勻的,所以你不需要控制分配。無論如何,對於高級用例,您可以將標籤分配給您的節點,並通過index settings控制索引分配的位置,請看shard allocation filtering