【问题标题】:Using an EmbeddedSolrServer in SolrCloud case在 SolrCloud 案例中使用 EmbeddedSolrServer
【发布时间】:2013-05-07 15:22:18
【问题描述】:

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

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

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

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

提前致谢!

【问题讨论】:

    标签: solr solrj solrcloud


    【解决方案1】:

    仅出于调试目的,我不喜欢使用EmbeddedSolrServer。如果您尝试同时在应用程序和管理控制台中访问索引,则使用 EmbeddedSolrServer 会引发 LockObtainFailedException

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

    【讨论】:

    • 我基本上最终分离了应用程序,因为正如您所指出的,使用 EmbeddedSolrServer 会带来额外的缺点(尤其是在集群方面)
    【解决方案2】:

    实际上,有一种方法可以使用 Solr 测试模块 在您的应用程序中创建 嵌入式 Solr 云

    <!-- 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 非常有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-26
      相关资源
      最近更新 更多