在SolrCloud案例中使用EmbeddedSolrServer

时间:2013-05-07 15:22:18

标签: solr solrj solrcloud

我目前正在构建一个负载均衡的应用程序(通过Apache外部),它启动Solr 4.2实例(或更具体地说是CoreContainer)。我想建立一个跨越我的应用程序的所有实例的SolrCloud(使用副本等)。我知道如何使用所需的Zookeeper集合等设置这些服务器。

我的问题与我与SolrCloud的互动方式有关。所以这就是:

  • 我的自定义应用程序收到请求,并根据此请求需要更新SolrCloud中的信息

  • 因为我启动了嵌入了我的应用程序的Solr实例,我可以使用EmbeddedSolrServer与索引交互,但是:这是与SolrCloud交互的正确方法吗?或者这种方法是否绕过了Solr采用的整个聚类方法,我最好将我的应用程序与SolrCloud集群分离并使用CloudSolrServer?

提前致谢!

2 个答案:

答案 0 :(得分:0)

仅出于调试目的,我不想使用EmbeddedSolrServer。如果您尝试在应用程序和管理控制台中一次性访问索引,则使用EmbeddedSolrServer会抛出LockObtainFailedException

http://wiki.apache.org/solr/EmbeddedSolr

答案 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写作非常有用。