我目前正在构建一个负载均衡的应用程序(通过Apache外部),它启动Solr 4.2实例(或更具体地说是CoreContainer)。我想建立一个跨越我的应用程序的所有实例的SolrCloud(使用副本等)。我知道如何使用所需的Zookeeper集合等设置这些服务器。
我的问题与我与SolrCloud的互动方式有关。所以这就是:
我的自定义应用程序收到请求,并根据此请求需要更新SolrCloud中的信息
因为我启动了嵌入了我的应用程序的Solr实例,我可以使用EmbeddedSolrServer与索引交互,但是:这是与SolrCloud交互的正确方法吗?或者这种方法是否绕过了Solr采用的整个聚类方法,我最好将我的应用程序与SolrCloud集群分离并使用CloudSolrServer?
提前致谢!
答案 0 :(得分:0)
仅出于调试目的,我不想使用EmbeddedSolrServer
。如果您尝试在应用程序和管理控制台中一次性访问索引,则使用EmbeddedSolrServer
会抛出LockObtainFailedException
。
答案 1 :(得分:0)
实际上,有一种方法可以使用 Solr测试模块在您的应用程序中创建嵌入式Solr Cloud 。
<!-- Solr Test Framework -->
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-test-framework</artifactId>
<version>6.6.1</version>
<scope>test</scope>
</dependency>
通过 jaihind213 here检查UT写作非常有用。