2016-06-24 6 views
0

サービスがあり、elasticsearchが複数のホストで動作しているとします。各ホストが完全なelasticsearchインデックス(replica> = numberOfHosts-1を持つことによって)を含むことを保証すれば、特定のホスト上のサービスコールが同じホストのインデックスでのみ検索することを保証できますホスト間で作られていますか?)elasticsearch呼び出しをローカルで確実に行うことはできますか?

答えて

1

shard allocation filteringを使用すると、インデックスの破片が1つのホストにのみ存在することを保証できます。ただし、そうすることで、ホストがダウンすると、データが失われることに注意してください。その結果、

PUT test/_settings 
{ 
    "index.routing.allocation.include._ip": "192.168.1.1", 
    "index.routing.allocation.exclude._ip": "192.168.1.2,192.168.1.3" 
} 

あなたは192.168.1.1に直接testインデックスを照会すると、あなたは192.168.1.1とあなたの要求を満たすために、ノード間の任意のチャタリングがないことを確認することができます。

クライアントノードまたは別の種類のロードバランサノードにクエリを送信すると、testインデックスがそのホストでのみ使用可能であることをクラスタが認識するため、リクエストは直接192.168.1.1にルーティングされることが保証されます。

単一のホストにインデックスをローカライズすることは、そのホストに障害が発生した場合や破損した場合など、データを失うことがないようにすることをお勧めします。

関連する問題