2013-05-07 50 views
1

我目前正在構建一個負載均衡(通過Apache進行外部調用)的應用程序,該應用程序啓動一個Solr 4.2實例(或者更確切地說是一個CoreContainer)。我想建立一個跨越我的應用程序的所有實例(帶有副本等)的SolrCloud。我知道如何設置這些服務器與所需的Zookeeper合奏等。在SolrCloud案例中使用EmbeddedSolrServer

我的問題屬於我與SolrCloud進行交互的方式。所以在這裏,它是:

  • 我的自定義應用程序接收到一個請求,並根據這一要求需要在SolrCloud

  • 更新信息,因爲我開始嵌入我的應用程序Solr的情況下,我可以用一個EmbeddedSolrServer與索引進行交互,但是:這是與SolrCloud進行交互的正確方式嗎?或者,這種方法是否會繞過Solr採用的整個集羣方法,我最好將應用程序與SolrCloud集羣分開並使用CloudSolrServer?

在此先感謝!

回答

0

僅出於調試目的,我寧願不使用EmbeddedSolrServer。如果您嘗試一次訪問應用程序和管理控制檯中的索引,則使用EmbeddedSolrServer會拋出LockObtainFailedException

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

+0

我基本上最終分離了應用程序,因爲正如您所指出的那樣使用EmbeddedSolrServer會帶來更多的缺點(尤其是涉及到集羣時) – svenp 2013-06-27 15:14:54

0

其實有使用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> 

檢查UT書面jaihind213here它非常有用。