LBHttpSolrServer의 경우 쿼리 흐름과로드 균형 조정이 어떻게 작동하는지 이해하고 싶습니다. 하나의 컬렉션으로 SolrCloud를 설정했으며 그 컬렉션에는 4 개의 샤드가 있으며 각 샤드에는 마스터와 복제본이라는 두 개의 노드가 있습니다.LBHttpSolrServer의 쿼리 동작 이해
다음과 같이 LBHttpSolrServer를 구성했습니다. 내 이해 SOLR 및 solrj에서
SolrServer lbHttpSolrServer = new LBHttpSolrServer("shard1_master:8080/solr/","shard2_master:8080/solr/","shard3_master:8080/solr/","shard4_master:8080/solr/","shard1_replica:8080/solr/","shard2_replica:8080/solr/","shard3_replica:8080/solr/","shard4_replica:8080/solr/",);
는
- LBHttpSolrServer는 서버의 목록 위에 핑을 유지하고 라이브 서버의 목록을 유지, 다음과 같이 작동합니다.
- 쿼리가 발생할 때마다 목록에서 하나의 서버를 선택합니다 (라운드 로빈 방식)
- 선택한 서버 서버에 쿼리를 보냅니다.
- 쿼리가 solr 노드에서 실행되면 나머지 파편에 쿼리를 내부적으로 배포하고 결과를 수집, 병합, 순위 지정하고 응답을 다시 사용자에게 보냅니다.
내 혼란이 포인트 번호 4에 있는데, 제 이해가 맞습니까? 그렇지 않다면 수정하십시오. 그리고 LBHttpSolrServer에 8 개의 노드를 모두 전달해야하거나 아니면 4 개만 있으면 충분합니다.