关于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进行处理,非常感谢!