有关使用elasticsearch的spring boot的问题:NoNodeAvailableException:没有配置的节点可用

时间:2018-01-08 05:23:37

标签: elasticsearch

我对弹性搜索完全不熟悉,并尝试使用spring boot开发一些演示项目。 通过使用Kibana的浏览器,我可以很好地使用elasticSearch,但是当我尝试使用Spring Boot时,我总是会遇到以下错误:

20180108 13:27:28.809 [elasticsearch[Ord][generic][T#2]] INFO o.e.c.transport - [Ord] failed to get node info for {#transport#-1}{127.0.0.1}{127.0.0.1:9300}, disconnecting... 
org.elasticsearch.transport.NodeDisconnectedException: [][127.0.0.1:9300][cluster:monitor/nodes/liveness] disconnected

ElasticSearch实例在我的本地PC上运行,只有一个节点,没有集群。在elasticsearch.yml配置文件中,我设置了 cluster.name:test123 node.name:node-1 。我没有更改此配置文件中的任何其他内容。我只有一个ElasticSearch实例。

在Spring引导项目的Application.properties中,ElasticSearch相关部分配置如下:

spring.data.elasticsearch.cluster-name=test123 spring.data.elasticsearch.cluster-nodes=127.0.0.1:9300 spring.data.elasticsearch.properties.*= spring.data.elasticsearch.repositories.enabled=true

build.gradle文件中的相关依赖项如下所示:

compile ('org.springframework.boot:spring-boot-starter-data-elasticsearch:'+springBootVersion)
compile ('org.springframework.data:spring-data-elasticsearch')

Spring启动的版本是'1.5.8.RELEASE' 我使用的elasticSearch是6.0.0

当我尝试运行项目时,我总是得到上面提到的错误。

有人可以帮帮我吗?非常感谢。

1 个答案:

答案 0 :(得分:0)

Spring Boot 1.5.8.RELEASE与Elasticsearch 6.0不兼容。 Spring Boot 1.5.x与Elasticsearch 2.4.x兼容

您可以在此处查看兼容版本的不完整表:Spring Data Elasticsearch

你可以做任何一次

  • 使用Spring Boot 1.5.x和Elasticsearch 2.4.x
  • 使用Spring Boot 2.0.0M7和Elasticsearch 5.5
  • 将Java Transport Client库用于最新的Elasticsearch 6.x
  • 使用Java High REST Client

如果从头开始,可能最好使用Java High REST Client,因为它是传输客户端 will be deprecated in the future