![](/img/trans.png)
[英]Healthcheck not working at all when using docker-compose (My service do not wait for Kafka to be started before launching)
[英]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.