3つのマスターノード、6つのデータノード、および3つのクライアントノードを持つ非常に標準的なelasticsearch設定があります。ここでは、JavaアプリケーションのElasticsearchクライアントに接続するための接続コードを示します。単一のクライアントノードがダウンしたときに、Elasticsearchクライアントは結果を取得しません。
Settings settings = Settings.settingsBuilder()
.put("cluster.name", configuration.getString("clusterName"))
.put("client.transport.sniff", false)
.put("client.transport.ping_timeout", "5s")
.build();
TransportClient client = TransportClient.builder().settings(settings).build();
for (String hostname : (Collection<String>)configuration.get("hostnames")){
try {
client = client.addTransportAddresses(
new InetSocketTransportAddress(InetAddress.getByName(hostname), 9300)
);
break;
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
現在、3つの異なるホスト名がホスト名リストにあります。しかし、このホスト名のリストから1つのクライアントがダウンすると、Elasticsearchトランスポートクライアントは応答を停止します。私はElasticsearchサイトでトランスポートクライアントのドキュメントを見てきましたが、Githubの問題を見てみましたが、ノードがダウンするたびにelasticsearchはノードのリストからそれを削除し、他のノードとの作業を続ける必要があります。壊す。誰でも何が問題なのか考えていますか? 今はelasticsearch 2.4.3を使用しています。
聖なるもの!それはとても簡単でした。私はちょうど私が間違っていることができないボックスにはまっていたかもしれない。 – Hardik127
@ Hardik127私たちの最高の出来事!時々、私たちは最もばかげたものを逃してしまいます。乾杯! – SureshS