springboot 集成 elasticsearch None of the configured nodes are available解决方案

问题描述

->SpringBoot集成elasticsearch。

elasticsearch服务端启动成功,springboot项目也启动成功了。
可是在调用 ElasticsearchRepository的方法时候报错了。

这时候先检查application.yml的端口号,如果是9200,则改成9300。

再检查application.yml的cluster-name 与 elasticsearch安装路径下config/elasticsearch.yml中的cluster.name是否保持一致,不一致则修改成一致的名称

我的配置如下图所示
springboot 集成 elasticsearch None of the configured nodes are available解决方案_第1张图片
springboot 集成 elasticsearch None of the configured nodes are available解决方案_第2张图片

->修改好了之后,项目再访问elasticsearch服务,依然报错

org.elasticsearch.client.transport.NoNodeAvailableException:
 None of the configured nodes are available: [{#transport#-1}{Tn-XXeOmQJawWBjBmZHUsg}{127.0.0.1}{127.0.0.1:9300}]

->最终解决方案

在elasticsearch安装路径下 /logs拉取服务端的日志,找到自己配置的cluster-name的日志。
我这里cluster-name是elasticsearch,因此日志的文件名为 elasticsearch.log.
在日志里总算找到了的抛异常的原因。
·

java.lang.IllegalStateException: Received message from unsupported version: 
[6.4.3] minimal compatible version is: [6.8.0]

从日志可以看出,是版本号不兼容的原因。我的springboot版本是2.1.7版本,elasticsearch安装的是7.4.2版本。

所以要么升高springboot版本,要么安装个低版本的elasticsearch。
我选择了升高springboot的版本,毕竟比较方便,在pom.xml中修改了springboot的版本号,改成了2.2.0版本。

重新调用接口,访问成功。

你可能感兴趣的:(SpringBoot,elasticsearch,Lucene)