当前位置: 首页 > 知识库问答 >
问题:

Spring boot无法连接到elasticsearch docker

权韬
2023-03-14

我的Elasticsearch docker撰写文件就是这样

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启动应用程序,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)如何从外部连接到带Spring靴的elasticsearch?2) 如果docker将elastic和springboot应用程序组合在一起,它们将位于同一个网络上。要连接到弹性搜索,我应该对spring.data.elasticsearch.cluster-nodes进行哪些更改?

我在spring boot应用程序中使用spring boot starter数据elasticsearch。

共有2个答案

凤修为
2023-03-14

这几乎类似于我几天前遇到的问题,也在这个问题中提到过,但让我在这里解释一下,因为在我解决的用例中有一些类似的警告。

使用docker inspect容器id检查我的elasticsearch docker容器使用的网络,其中一部分如下所示:

"Networks": {
            "docker-files_default": {->this is network name used by elasticsearch docker.
                "IPAMConfig": null,
                "Links": null,
                "Aliases": [
                    "elasticsearch",
                    "de78c684ae60"
                ],

现在为我的应用程序定义了我的docker compose,如下所示:

version: '3'
services:
  web:
    build: .
    ports:
      - "8080:8080"
    volumes:
      - .:/code
    networks: --> see it uses the network section and below which defines the same network used by elastic docker 
      - docker-files_default

networks:  --> note this section as well, you need to add this as well.
  docker-files_default:
    external: true

之后,由于两个docker容器使用相同的网络,您可以使用elasticsearch docker容器名称,即elasticsearch,如elastic docker-compose.yml中所示。因此,弹性Spring的Spring配置如下:

spring.data.elasticsearch.cluster-nodes=elasticsearch:9200
羊舌勇
2023-03-14

在application.properties文件spring.data.elasticsearch.cluster中,节点应该是elasticsearch:9200,而不是localhost:9200。

 类似资料:
  • 我正在尝试从Spring Boot应用程序连接到mySQL数据库。然而,当我试图运行它时,它显示出错误。 我如何解决这个问题? 错误 从我的文件中添加代码片段 pom。xml 应用属性 堆栈跟踪 我还没有在sql中手动创建表,因为我认为spring.jpa.hibernate.ddl-Auto=date应该这样做

  • 我创建了一个docker compose文件,将MySql连接到SpringBoot应用程序。但我得到了这个错误: 我尝试在本地机器中使用docker默认ip运行Spring Boot应用程序,同时在这个docker-compose.yml文件中只运行MySql容器,结果运行得非常好。但当我尝试docker编写文件时。我知道这个错误。

  • 问题内容: 我正在尝试使用Ruby on Rails运行Selenium的示例脚本。我必须使用代理运行它。这是我的代码: 我收到以下错误: 有人能帮我吗…?我已经尝试了好几个小时,却找不到问题…真的不知道该怎么办。 环境: Ubuntu 16.04 LTS,Firefox 45.0,rbenv 2.3.1 另一个问题:有人知道Selenium + Ruby on Rails的示例吗?我找不到真正好

  • 我正在尝试连接到MySQL服务器,但出现无法处理的错误。 java.sql.SQLNonTransientConnectionException:无法创建到数据库服务器的连接。尝试重新连接3次。放弃。com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110)com.mysql.cj.jdbc.excepti

  • 我真的想不通为什么我不能用下面的代码连接到我的Django项目内的JQuery。你能告诉我是什么原因吗?多谢! null null

  • 我正在尝试使用Android studio提供的工具将我的Android应用程序连接到firebase,但我面临着很多麻烦。 我已经尝试更新依赖到最新的最新的谷歌服务,但错误仍然存在,显示的错误是无法解析Android应用模块的Gradle配置。解决分级生成问题和/或重新同步。 分级/应用程序a

  • 我正在开发Selenium,目前我有一个连接到两个运行linux和所有浏览器的虚拟机的集线器。 我能够启动浏览器,直到它突然停止。火狐或任何其他浏览器都不会启动。我得到以下错误。 45000 ms后无法连接到端口7055上的主机127.0.0.1。 我运行Selenium服务器独立2.26与火狐16.0.2. 请帮忙。

  • 尝试使用主连接字符串和用户名(数据库名)连接到cosmosdb Mongo API 原因:com.mongodb.mongotieoutexception:在等待与com.mongodb.client.internal.mongoclientdelegate$1@3C291AAD匹配的服务器时,在30000 ms后超时。群集状态的客户端视图是{type=replica_set,servers=[{