Невозможно индексировать данные с помощью кода Java при запуске облака solr с помощью docker-compose

При попадании в solr-cloud (открытые порты 8983) из java-кода с использованием zookeeperURI (открытый порт 2181), которые запускаются с использованием docker-compose, и выдается ошибка, говорящая, что «org.apache.solr.client.solrj.SolrServerException: No live Серверы Solr, доступные для обработки этого запроса: [http://172.21.0.4:8983/solr/test]< /а>".

Есть ли способ решить эту проблему?


person Ashmeet Kandhari    schedule 22.02.2017    source источник
comment
вы должны опубликовать свой файл docker-compose   -  person freedev    schedule 22.02.2017


Ответы (2)


Использование параметра -u your-hostname при запуске Solr, наконец, сработало для меня. Делая это, зоопарк возвращает your-hostname вместо IP. Затем вы можете добавить:

127.0.0.1 your-hostname

к вашему /etc/hosts, и это должно творить чудеса. Как я уже сказал, это сработало для меня.

Мой docker-compose.xml так же прост, как:

version: '2'

services:

  ...

  oesp-zookeeper:
    image: zookeeper:1
    container_name: my-zookeeper
    ports:
      - 2181:2181

  oesp-solr:
    image: solr:1
    container_name: my-solr
    depends_on:
      - my-zookeeper
    ports:
      - 8983:8983

Затем я запускаю Solr с помощью:

solr -f -z my-zookeeper:2181 -h solr.docker
person Pedro Galan    schedule 26.03.2018

IP-адрес, возвращаемый SolrJ (172.21.0.4), является IP-адресом контейнера SolrCloud, который недоступен извне.

Чтобы решить эту проблему, я предлагаю указать имя хоста для экземпляра Solr вместо IP-адреса по умолчанию. Это означает, что вы должны определить переменную окружения SOLR_HOST: solr-cloud в вашем docker-compose.yml .

Взгляните на этот https://github.com/freedev/solrcloud-zookeeper-docker

В частности, файл solrcloud/docker-compose.yml настроен так, как я описал в предыдущих строках своего ответа.

person freedev    schedule 22.02.2017