RestClientConfig AbstractElasticsearchConfiguration连接到同一网络上的docker服务

时间:2020-04-18 09:42:32

标签: spring-boot docker elasticsearch

我正在使用spring数据elasticsearch连接到docker容器中的elasticesearch。我使用的代码可以在

下找到
  1. 高级REST客户端

https://docs.spring.io/spring-data/elasticsearch/docs/current/reference/html/#reference

static class Config {

  @Bean
  RestHighLevelClient client() {

    ClientConfiguration clientConfiguration = ClientConfiguration.builder() 
      .connectedTo("elasticsearch")
      .build();

    return RestClients.create(clientConfiguration).rest();                  
  }
}

spring boot应用程序和docker弹性搜索位于同一网络上,因为它们都在同一目录中(spring boot docker-compose和elasticsearch docker-compose文件)。

我的elasticsearch docker-compose就这样

版本:“ 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:

我遇到错误

Caused by: java.io.IOException: elasticsearch
Caused by: java.net.UnknownHostException: elasticsearch

我如何让我的Spring Boot看到elasticsearch服务名称并解决它?我认为这与RestClients有关。

0 个答案:

没有答案