Elasticsearch报 NoNodeAvailableException 的解决办法

1. 异常的出现

    在使用TransportClient连接Elasticsearch时出现了NoNodeAvailableException: None of the configured nodes are available: [{#transport#-1}…… 这种异常,通过搜索其他人分享的解决办法,例如

    new InetSocketTransportAddress(InetAddress.getByName("???.???.???.???"), 9300);

        ⑴ 修改端口号为TCP内部传输端口 9300

    Settings settings = Settings.builder().put("cluster.name", "???").build();
    TransportClient transportClient = new PreBuiltTransportClient(settings);

        ⑵ 设置集群名称

    但是,尝试了这些方法仍然无法解决问题。最终我将Elasticsearch改为前台启动(之前一直是后台启动服务的),通过查看服务的日志,得出了解决的办法

2. 服务日志

  [2017-12-30T00:57:00,859][WARN ][o.e.t.n.Netty4Transport  ] [master] exception caught on transport layer [[id: 0x????, L:/???.???.???.???:9300 - R:/???.???.???.???:???]], closing connection
  java.lang.IllegalStateException: Received message from unsupported version: [5.5.2] minimal compatible version is: [5.6.0]

    可以看到日志很清楚的描述了出错的原因,就是因为使用了低版本的transport,最小的兼容版本须为5.6.0

3. 解决办法

    修改pom依赖为5.6.0版本即可

<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>transport</artifactId>
    <version>5.6.0</version>
</dependency>

4. 注意事项

    我使用的Elasticsearch是elasticsearch-6.0.0版本的,所以可能并不适用于你们的情况

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值