Spring Data Solr 是否与 zookeeper 主机一起使用?
Does Spring Data Solr work with zookeeper host?
我有一个 spring 引导应用程序并且在我的属性文件中有:
spring.data.solr.host=http://{SOLR.HOST}/solr
这工作正常,但如果我用 ZOOKEEPER.HOST
替换 SOLR.HOST
,它会在与服务器通信时抛出 I/O 异常。在我看来 spring 数据试图通过 http 请求直接命中 zookeeper 端点,而 zookeeper 不处理 http 请求?如果是这样,我该怎么做才能让 spring 数据与 zookeeper 一起工作?
看来您需要使用 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 引导自动配置它:
spring.data.solr.zk-host= # ZooKeeper host address in the form
HOST:PORT.
https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html
否则,您可以使用 LoadBalancer 来为您的 Solr 实例提供服务并使用常规的 Solr 主机配置
比如我有如下配置(yml config):
spring.data.solr.host: https://foo.bar.com/solr
其中 foo.bar.com 使用 Apache 作为标准负载均衡器为我的 Solr 实例之一提供服务。
我有一个 spring 引导应用程序并且在我的属性文件中有:
spring.data.solr.host=http://{SOLR.HOST}/solr
这工作正常,但如果我用 ZOOKEEPER.HOST
替换 SOLR.HOST
,它会在与服务器通信时抛出 I/O 异常。在我看来 spring 数据试图通过 http 请求直接命中 zookeeper 端点,而 zookeeper 不处理 http 请求?如果是这样,我该怎么做才能让 spring 数据与 zookeeper 一起工作?
看来您需要使用 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 引导自动配置它:
spring.data.solr.zk-host= # ZooKeeper host address in the form HOST:PORT.
https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html
否则,您可以使用 LoadBalancer 来为您的 Solr 实例提供服务并使用常规的 Solr 主机配置
比如我有如下配置(yml config):
spring.data.solr.host: https://foo.bar.com/solr
其中 foo.bar.com 使用 Apache 作为标准负载均衡器为我的 Solr 实例之一提供服务。