Solr can handle multiple requests at a time.
Eu testei-o executando uma longa consulta [qTime = 7203, aprox. 7sec] e várias consultas pequenas - depois do longo [qTime = 30], o Solr responde primeiro por consultas menores, mesmo que elas sejam executadas após a consulta longa.
Esse ponto dá muitas razões para responder: Use uma única instância de solr com vários núcleos. Apenas atribua memória alta à JVM.
Outros pontos:
1. Cada instância do solr exigirá RAM, portanto, a execução de várias instâncias exigirá mais recursos, o que será caro. E se você estiver usando facets
, sort fields
, precisará alocar mais RAM para cada instância.
Como você pode ver no meu caso eu preciso iniciar o solr com memória alta (8GB). Você pode ver um caso de arquivo da Web em dinamarquês , que usa várias instâncias e alocou 9 GB de RAM para cada um com 256 GB total de RAM.
2. Você pode executar várias instâncias de solr em diferentes PORTAS usando o comando java -Djetty.port=8984 -jar start.jar
. Tudo correu bem, mas eu tenho um problema.
Embora a indexação possa dar "erro de memória insuficiente" , a instância solr será eliminada. Portanto, você precisa iniciar a segunda instância com memória alta, o que levará a mais requisitos de RAM.
3. Requisito de recursos e problemas de desempenho do Solr pode ser entendido aqui . De acordo com este ambiente de 64 bits e 12 GB de RAM é recomendado para um bom desempenho. Solr Optimization são explicados aqui .