2013-05-07 4 views
1

В настоящее время я создаю приложение, сбалансированное по нагрузке (внешне через Apache), которое запускает экземпляр Solr 4.2 (или, более конкретно, CoreContainer). Я хочу настроить SolrCloud, который охватывает все экземпляры моего приложения (с репликами и т. Д.). Я знаю, как настроить эти серверы с необходимым ансамблем Zookeeper и т. Д.Использование EmbeddedSolrServer в случае SolrCloud

Мой вопрос относится к тому, как я взаимодействую с SolrCloud. Так вот:

  • мой заказ приложение получает запрос и на этот запрос необходимо обновить информацию в SolrCloud

  • , так как я начал экземпляр Solr внедренный с моим приложением, я мог бы использовать EmbeddedSolrServer для взаимодействия с индексом, но: это правильный способ взаимодействия с SolrCloud? Или этот подход обойти весь подход к кластеризации, который принимает Солр, и мне лучше отделить мое приложение от кластера SolrCloud и использовать CloudSolrServer?

Заранее благодарен!

ответ

0

Только для целей отладки я предпочитаю не использовать EmbeddedSolrServer. Используя команду EmbeddedSolrServer, вы бросаете LockObtainFailedException, если попытаетесь получить доступ к индексу в приложении и в консоли администратора сразу.

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

+0

В основном я разделял приложение, потому что использование EmbeddedSolrServer, как вы указали, приносит ему дополнительные недостатки (особенно, когда дело касается кластеризации) – svenp

0

На самом деле есть способ создания Embedded Solr Cloud в приложении с помощью 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 это очень полезно.