【问题标题】:ElasticSearch 0.90.5 throws occasional NoNodeAvailableException using Java APIElasticSearch 0.90.5 使用 Java API 偶尔会抛出 NoNodeAvailableException
【发布时间】:2013-11-17 21:54:59
【问题描述】:

我正在使用 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)

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    你能发布完整的堆栈跟踪吗?

    此外,通过查看 elasticsearch 留言板 (http://elasticsearch-users.115913.n3.nabble.com/) 中的类似异常,您可能想尝试增加 client.transport.ping_timeout 并查看是否有帮助

    【讨论】:

    • 我们已经将 client.transport.ping_timeout 设置为 10s ...将堆栈跟踪的一部分添加到我的问题中
    • 在查看代码时,我错过了我们连接的两个集群之一的超时。还在客户端 api 初始化时将 client.transport.sniff 添加为 true(我们的集群之一是 3 个节点,我希望连接至少能够公平分布)。如果这有帮助,将报告。感谢您在此设置上的提醒。让我仔细检查。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-18
    • 1970-01-01
    • 2018-04-13
    • 2017-06-27
    • 2012-05-17
    • 1970-01-01
    相关资源
    最近更新 更多