繁体   English   中英

使用docker-compose启动solr cloud时,无法使用java代码索引数据

[英]Cannot index data using java code when started solr cloud using docker-compose

使用使用docker-compose启动的zookeeperURI(公开端口2181)从java代码命中solr-cloud(暴露端口是8983)时,抛出错误说“org.apache.solr.client.solrj.SolrServerException:No live SolrServers可用于处理此请求:[ http://172.21.0.4:8983/solr/test] “。

有办法解决这个问题吗?

返回SolrJ( 172.21.0.4 )的IP地址是SolrCloud容器的IP,无法从外部访问。

为了解决这个问题,我建议为Solr实例指定一个主机名,而不是默认的ip地址。 这意味着你必须定义SOLR_HOST: solr-cloud环境变量在你的docker-compose.yml

看看这个https://github.com/freedev/solrcloud-zookeeper-docker

特别是文件solrcloud/docker-compose.yml的配置正如我在前面的答案中描述的那样。

启动Solr时使用参数-u your-hostname最终为我工作。 通过这样做,我让zookeeper返回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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM