2014-09-02 1 views
0

나는 3 명의 동물원 관리자와 함께 8 개의 solr 파편을 운영하고 있는데, 서버 중 하나라도 실패하면 다음 stacktrace를 제공하기 때문에 shards.tolerant = true로 처리 할 수 ​​있습니다.Solr에서로드 밸런싱을 처리하는 방법은 무엇입니까?

나의 질문은 solr 클라우드에서 기본적으로이 결함을 허용하는 법입니다. 그래서 fire를 질의 할 때마다 보장 된 결과가 나오고 예외는 반환되지 않습니다.

ERROR - 2014-09-02 12:01:45.610; org.apache.solr.common.SolrException; org.apache.solr.common.SolrException: no servers hosting shard: 
    at org.apache.solr.handler.component.HttpShardHandler$1.call(HttpShardHandler.java:149) 
    at org.apache.solr.handler.component.HttpShardHandler$1.call(HttpShardHandler.java:119) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 

답변

0

샤드가 고장 났을 때 이런 일이 발생할 수 있습니다. 그 노드로 인해 어떤 파편이 내려 갔습니까?
몇 개의 복제본이 있습니까?

LoadBalancing :
CloudSolrServer 클라이언트는 사용하는 경우로드 균형 조정을 처리합니다. Solr Cloud에서는 쿼리가 분산됩니다.

+0

안녕하세요, 그렇습니다. 하나의 샤드가 내게이 오류가 발생하는 이유는 무엇입니까? .... 나는 모두 8 개의 샤드를 보유하고 있으며, 클라우드는 7 천만 문서와 2TB 공간을 가지고 있습니다. 복제본이 없습니다 ... 무엇을 원하십니까? 제안? –

+0

하나 이상의 노드를 잃어 버리려면 적어도 2 개의 복제본을 만듭니다. – techuser

0

Solr Cloud에서 고 가용성을 설정하려면 최소한 2 개의 Solr 인스턴스가 필요합니다. 컬렉션을 만들 때 조각 수와 복제 계수를 지정하면 SolrCloud가 완료 될 때 각 복제본에 미러 조각을 만듭니다. 클라우드보기에서 작동하는지 확인할 수도 있습니다.

이 시점에서 Solr 데이터를 이전과 같이 색인화하면 자동으로 "leader"인스턴스로 전송 된 다음 미러 된 인스턴스에 복제됩니다.

어떤 노드가 그것을 수신했는지에 관계없이 쿼리가 들어 오면 자동으로 SolrCloud에서 주어진 샤드의 인스턴스에 도달 한 다음 결과가 집계되어 클라이언트로 다시 전송됩니다.

관련 문제