【发布时间】:2020-07-31 17:34:33
【问题描述】:
我的 Elasticsearch docker-compose 文件就是这样
version: '3'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:6.8.6
container_name: elasticsearch
environment:
- cluster.name=cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- ./config/elasticsearch/elasticsearch.yml:/usr/share/elasticsearch/elasticsearch.yml
- esdata6:/usr/share/elasticsearch/data
ports:
- "9200:9200"
kibana:
image: docker.elastic.co/kibana/kibana:6.8.6
container_name: kibana
volumes:
- ./config/kibana/kibana.yml:/usr/share/kibana/kibana.yml
restart: on-failure
ports:
- "5601:5601"
volumes:
esdata6:
我有一个spring boot应用程序,application.properties是
spring.data.elasticsearch.repositories.enabled=true
spring.data.elasticsearch.cluster-nodes=localhost:9200
spring.data.elasticsearch.cluster-name=cluster
但是,我得到了错误
2020-04-18 13:49:45.775 INFO 7576 --- [ main] o.s.d.e.c.TransportClientFactoryBean : Adding transport node : 127.0.0.1:9200
2020-04-18 13:50:16.961 ERROR 7576 --- [ main] .d.e.r.s.AbstractElasticsearchRepository : failed to load elasticsearch nodes : org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available: [{#transport#-1}{Lzoi5ddvSJizvu4g3Y3E6Q}{localhost}{127.0.0.1:9200}]
问题: 1)我如何在外部使用弹簧靴连接到弹性搜索? 2)如果我将弹性和springboot应用程序一起docker-compose,它们将在同一个网络上。为了连接到弹性搜索,我应该对 spring.data.elasticsearch.cluster-nodes 进行哪些更改?
我在 Spring Boot 应用程序中使用 spring-boot-starter-data-elasticsearch。
【问题讨论】:
-
这篇文章可能对您有所帮助stackoverflow.com/questions/61171399/…,如果您有类似的要求或需要更多信息,请发表评论
-
我的 docker-compose 文件中的 spring boot 应用程序和我的 es docker-compose 文件在同一个目录中,因此它们在同一个 docker 网络上。 spring boot 应用程序应该能够通过服务名称访问 elasticsearch。无论如何,我也在链接中尝试了您的建议,但仍然无法连接。它说未知主机
-
您可以将
docker inpsect container-id用于 spring 应用程序和 es docker 容器,并在输出中检查两者的网络部分并粘贴到此处吗?
标签: java spring-boot docker elasticsearch