我正在使用 ElasticSearch 0.90.5。单节点集群并使用 Java API 进行与节点的所有通信(用于索引和搜索)。
我每 10 分钟就有一个连续的文档流输入服务器。使用批量索引 API 以获得最佳性能。后续查询要么检索单个文档,要么运行 More-Like-This 查询。
时不时地(有时有点过于频繁)我们会得到以下异常:
引起:org.elasticsearch.client.transport.NoNodeAvailableException:没有可用的节点
我可以向您保证,服务器已启动并运行良好。这是我们偶尔看到的问题。NewRelic 服务器监视器对盒子本身的压力很小。在很短的时间内,最高的 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)