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版本的,所以可能并不适用于你们的情况

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
对于Elasticsearch 7.10.2的脑裂问题,有几种解决办法可以尝试: 1. 配置正确的集群名称:脑裂通常发生在具有相同集群名称但配置不同的节点之间。确保所有节点的集群名称配置正确,以便它们能够正确识别和加入同一个集群。 2. 配置正确的网络设置:确保节点之间的网络连接是稳定和可靠的,避免网络延迟或丢包。可以使用ping命令测试节点之间的网络连接,并确保所有节点都可以相互访问。 3. 配置正确的主节点和数据节点:确保主节点和数据节点的配置正确。主节点负责管理集群状态和元数据,而数据节点负责存储和处理数据。将主节点和数据节点分开,可以减少脑裂问题的发生。 4. 使用专用主节点:为了进一步减少脑裂问题的发生,可以将一些节点配置为专门的主节点。这些专用主节点不存储数据,只负责管理集群状态和元数据。这样可以降低主节点因存储大量数据而导致的负载压力,提高集群的稳定性。 5. 配置集群恢复策略:可以通过配置合适的集群恢复策略来避免脑裂问题。可以设置恢复延迟、最小副本数等参数,以确保集群在节点故障后能够快速恢复并保持一致性。 请注意,以上建议仅供参考,并且可能需要根据您的具体环境和需求进行调整。在进行任何更改之前,请务必备份您的数据,并在测试环境中进行验证。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值