加载Elasticsearch节点失败-failed to load elasticsearch nodes

关于Elasticsearch 的介绍,可以参考之前的文章:

Elasticsearch和Kibana最新版(v7.3.0)下载、安装、启动(WINDOWS)

Elasticsearch 术语介绍和CRUD实际操作入门

Beats:Elasticsearch 的数据采集器-快速入门

最新版Elasticsearch 7.x入门操作

最新版Elasticsearch 7.x master 主节点找不到或者还没有选举?

Elasticsearch Head Chrome浏览器插件安装和使用(最新版7.x)

订单中心基于Elasticsearch 7.x构建订单查询服务

Elasticsearch 6.4.3 和Spring Boot 2.1.7集成-实战演练完整代码

在Spring Boot 和 Elasticsearch 集成的项目中,jar包在启动过程中出现如下异常信息。

具体异常信息:

failed to load elasticsearch nodes :

org.elasticsearch.client.transport.NoNodeAvailableException:

None of the configured nodes are available:

[{#transport#-1}{nO9E5fmjSoWVUxduQ_MZDg}{localhost}{127.0.0.1:9300}]

大致意思是:加载Elasticsearch 节点失败,配置的节点没有可用的。

演示环境:

Spring Boot 最新版 v2.1.7。

Spring Data Elasticsearch 最新版 v3.1.10。

Elasticsearch Cluster Server 是基于最新版的Elasticsearch v7.3 搭建的。

解决办法:

出现上述异常,一般是如下几个原因。

1. 配置的Elasticsearch 节点是否已经启动?

如下配置的cluster-nodes节点为:127.0.0.1:9300

9200 端口是用来让HTTP REST API来访问ElasticSearch,而9300端口是传输层监听的默认端口。

访问一下http://127.0.0.1:9200,检查 HTTP REST API 是否工作正常。

如果工作正常,说明 Elasticsearch 节点已经正常启动。

(2)检查Elasticsearch client 版本和 Elasticsearch cluster server端版本是否一致。

Spring Data Elasticsearch 和 Elasticsearch 版本之间的兼容性,可以参考如下表格:

https://github.com/spring-projects/spring-data-elasticsearch

Spring Data Elasticsearch 当前GA 版本 v3.1.10。

https://spring.io/projects/spring-data-elasticsearch/#learn

Spring Boot 项目中,依赖的Spring Data Elasticsearch 版本为3.1.10 最新版。

从下图包依赖关系可以看出,项目中引用的Elasticsearch client 版本为 6.4.3。

因此,建议Elasticsearch Cluster Server 端也建议使用相同版本6.4.3。可以到如下URL 下载对应的版本。

下载之前的Elasticsearch、Kibana版本:

https://www.elastic.co/cn/downloads/past-releases/

安装好Elasticsearch,并在本地启动。此时,Elasticsearch Cluster 版本为 6.4.3。

然后,再次运行Spring Boot 项目,从输出结果中,可以看到 Elasticsearch 节点可以正常加载了。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年7月20日
下一篇 2019年7月20日

相关推荐