【问题标题】:Elasticsearch 1.3.2 intermittently gives NoNodeExceptionElasticsearch 1.3.2 间歇性地给出 NoNodeException
【发布时间】:2015-08-09 02:50:44
【问题描述】:

我正在使用 Java 传输客户端连接到 Elasticsearch 集群。集群和客户端都是 1.3.2 版本。我间歇性地收到以下 NoNodeAvailableException。

NoNodeAvailableException : 配置的节点都不可用:...{data=false, master=false}])

这就是我通过传输客户端连接的方式。我故意增加了 Ping 超时间隔来避免这个问题,但运气不佳。有什么想法可以做些什么来防止这个异常?

Settings settings = ImmutableSettings.settingsBuilder()
                    .put("cluster.name", cluster)
                    .put("client.transport.ping_timeout", "20s")
                    .build();
this.client =
        new TransportClient(settings).addTransportAddress(new InetSocketTransportAddress(host, port));

【问题讨论】:

    标签: java elasticsearch


    【解决方案1】:

    有 2 处变化

    1. 网络不稳定 - 网络不稳定且不允许 断断续续的连接。
    2. GC - 当垃圾收集被触发时,会有一个跨度 “停止世界”的时间。在此范围内,java 进程将冻结并 该节点将给出相同的“无节点异常”。观看 GC 节点的活动,看看这是否是原因。
    3. 客户端和服务器 Elasticsearch 版本 - 查看它们是否都是 一样的

    【讨论】:

      【解决方案2】:

      增加了 ping 超时,并添加了以下受 http://petabyte-georgesanchez.blogspot.com/2014/07/elasticsearch-sniff-sniff.html 启发的配置更改,它似乎工作正常。

      .put("client.transport.sniff", true) .put("client.transport.ping_timeout", "25s") .put("client.transport.nodes_sampler_interval", "10s")

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-05-15
        • 2021-06-20
        • 2020-09-20
        • 2019-11-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-08
        相关资源
        最近更新 更多