ES が Java クライアントで利用可能であることを確認する簡単な方法が欲しいです。クライアントインスタンスを取得するために、次のようなファクトリがあります。
https://gist.github.com/1364734
ES が利用できないというシナリオを適切に処理する最善の方法は何ですか、それとも私が持っているもので十分ですか?
ES が Java クライアントで利用可能であることを確認する簡単な方法が欲しいです。クライアントインスタンスを取得するために、次のようなファクトリがあります。
https://gist.github.com/1364734
ES が利用できないというシナリオを適切に処理する最善の方法は何ですか、それとも私が持っているもので十分ですか?
Shay は以前、このアプローチが優れていることを確認しました。このアプローチは、ドキュメントによっても裏付けられています。
優雅な扱いについて。検索を実行しようとしているリクエストまたはプロセスをエラーにするだけです。TransportClient
が接続され、今後のリクエストが成功する可能性があります。
完全を期すために、ここに関数をコピーします。
private void verifyConnection(TransportClient client) { ImmutableList<DiscoveryNode> nodes = client.connectedNodes(); if (nodes.isEmpty()) { throw new ElasticSearchUnavailableException("No nodes available. Verify ES is running!"); } else { log.info("connected to nodes: " + nodes.toString()); } }