Spring Data Solr是否与动物园管理员主机一起使用?



我有一个 Spring 启动应用程序,在我的属性文件中我有:

spring.data.solr.host=http://{SOLR.HOST}/solr

这工作正常,但是如果我用ZOOKEEPER.HOST替换SOLR.HOST,它会在与服务器通信时引发I/O异常。在我看来,Spring 数据试图通过 http 请求直接命中 zookeeper 端点,而 zookeeper 不处理 http 请求?如果是这样,我该怎么做才能让弹簧数据与动物园管理员一起工作?

看起来你需要使用CloudSolrClient来实例化SolrClient bean。 https://dzone.com/articles/spring-data-solr-cloud-zookeeper-mongodb-ubuntu-in

@Configuration
@EnableSolrRepositories(basePackages = { "ca.knc.restaurant.repository.solr" }, multicoreSupport = true)
public class SpringSolrConfig {
@Value("${spring.data.solr.zk-host}")
private String zkHost;
@Bean
public SolrClient solrClient() {
return new CloudSolrClient(zkHost);
}
@Bean
public SolrTemplate solrTemplate(SolrClient solrClient) throws Exception {
return new SolrTemplate(solrClient);
}
}

你也可以通过 application.properties 来设置它,让 Spring Boot 自动配置它:

spring.data.solr.zk-host= # ZooKeeper 主机地址的形式 主机:端口。

https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html

https://github.com/spring-projects/spring-boot/blob/master/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/solr/SolrAutoConfiguration.java


否则,您可以使用负载均衡器为您的 Solr 实例提供服务,并使用常规的 Solr 主机配置

例如,我有以下配置(yml 配置(:

spring.data.solr.host: https://foo.bar.com/solr

foo.bar.com 在哪里为我的一个 Solr 实例提供服务,其中 Apache 作为标准负载均衡器。

相关内容

最新更新