Использование EmbeddedSollServer в случае SolrCloud

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

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

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

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

Заранее спасибо!


person svenp    schedule 07.05.2013    source источник


Ответы (2)


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

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

person Mike Nitchie    schedule 07.06.2013
comment
В основном я разделил приложение, потому что использование EmbeddedSolrServer, как вы указали, приносит с собой дополнительные недостатки (особенно когда дело доходит до кластеризации) - person svenp; 27.06.2013

На самом деле есть способ создать Встроенное облако 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 от jaihind213 здесь это очень полезно.

person Mouad EL Fakir    schedule 21.09.2017