Пружинный ботинок не может подключиться к упру - PullRequest
0 голосов
/ 18 апреля 2020

Мой 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:

У меня есть приложение для весенней загрузки, а 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) Если я docker создаю вместе elasti c и приложение Springboot, они будут в одной сети. Какие изменения я должен внести в spring.data.elasticsearch.cluster-node для подключения к поиску elasti c?

Я использую spring-boot-starter-data -asticsearch в приложении весенней загрузки.

Ответы [ 2 ]

0 голосов
/ 18 апреля 2020

Это почти похоже на проблему, с которой я столкнулся несколько дней назад, и также упоминал в этом ТАКом вопросе, но позвольте мне объяснить здесь, поскольку в вашем случае использования есть некоторые подобные предостережения, которые я решил.

С помощью docker проверить идентификатор контейнера проверил сеть, используемую моим контейнеромasticsearch docker, часть которого выглядит следующим образом:

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

Теперь определен мой docker - создайте для моего приложения, как показано ниже:

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 используют одну и ту же сеть, вы можете использовать имя вашего контейнераasticsearch docker, которое является asticsearch, как показано в вашем elasti c docker -compose.yml. Так что ниже конфигурации пружины для elasti c будет:

spring.data.elasticsearch.cluster-nodes=elasticsearch:9200
0 голосов
/ 18 апреля 2020

В вашем файле application.properties файлы spring.data.elasticsearch.cluster-node должны иметь значение asticsearch: 9200 , а не localhost: 9200.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...