ElasticSearch 0.90.5 を使用しています。単一ノード クラスタで、ノードへのすべての通信に Java API を使用する (インデックス作成と検索の両方)。
10 分ごとにサーバーにフィードされるドキュメントの継続的なストリームがあります。最適なパフォーマンスを得るために一括インデックス API を使用します。後続のクエリは、単一のドキュメントを取得するか、More-Like-This クエリを実行します。
ときどき (時にはあまりにも頻繁に) 次の例外が発生します。
原因: org.elasticsearch.client.transport.NoNodeAvailableException: 利用可能なノードがありません
サーバーが正常に稼働していることを保証できます。これは、時折見られる問題です。NewRelic Server モニターは、ボックス自体にほとんど負担をかけません。最高の CPU 使用率は、短い期間でも50%でした。ES ログに有用な情報が表示されません。影響を受けた期間のログに GC メッセージはありません。
API を使用しているときにこの例外に遭遇した人はいますか? どんな洞察も高く評価されます。
関連するスタック トレース:
Caused by: org.elasticsearch.client.transport.NoNodeAvailableException: No node available
at org.elasticsearch.client.transport.TransportClientNodesService$RetryListener.onFailure(TransportClientNodesService.java:249)
at org.elasticsearch.action.TransportActionNodeProxy$1.handleException(TransportActionNodeProxy.java:84)
at org.elasticsearch.transport.TransportService$Adapter$2$1.run(TransportService.java:311)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)