首页 > 解决方案 > 在 URL 中指定分片时,应该将分布式请求发送到哪个 SOLR 服务器?

问题描述

我正在 SOLR 中使用分片设置分布式搜索。

我应该将此请求发送到哪个服务器?还是没关系?

主机1 :8983/solr/core?q= : &shards=host1:8983/solr/core,host2:8983/solr/core

对比

主机2 :8983/solr/core?q= : &shards=host1:8983/solr/core,host2:8983/solr/core

同样,拥有一个单独的空 solr 服务器来引导这些搜索而不是使用其中一个分片会更好吗?

标签: solrsharding

解决方案


除非您看到性能问题,否则我不会太担心这两者之间的性能差异。无论如何,查询将在两台服务器上运行,它只是负责将最终结果合并到客户端的不同服务器。如果您想在两台服务器上分散此负载,那很好 - 在这种情况下,我会以循环方式在两者之间进行交替(例如,通过在前面放置一个 HTTP 负载平衡器或让您的 Solr 库负载平衡)可用的服务器)。

如果您开始将副本混入其中,则变得更加困难,负载均衡器将很有用。在这种情况下,在云模式下查看 Solr 可能是一个好主意,Solr 将透明地为您处理所有这些(负载平衡和副本平衡,只要您的库支持 Zookeeper)。


推荐阅读