我正在使用SOLR中的分片设置分布式搜索。
我应将此请求发送到哪个服务器?还是没关系?
主机1:8983 / solr / core?q = :&shards = host1:8983 / solr / core,host2:8983 / solr / core
vs
主机2:8983 / solr / core?q = :&shards = host1:8983 / solr / core,host2:8983 / solr / core
类似地,最好有一个单独的空solr服务器将这些搜索定向到而不是使用其中一个分片?
除非您看到性能问题,否则我不会太担心这两者之间的性能差异。无论如何,查询都将在两个服务器上运行,它将是另一台服务器,负责将最终结果合并到客户端。如果您想将此负载分散到两台服务器上,那很好-在这种情况下,我会以循环方式在这两个服务器之间交替进行(例如,将HTTP负载平衡器放在前面,或将Solr库的负载平衡在两个服务器之间)。可用的服务器)。
如果您开始将副本添加到混合中,则会变得更加困难,在这里负载平衡器将非常有用。在那种情况下,最好以云模式查看Solr,Solr将为您透明地处理所有这一切(负载平衡和副本平衡,只要您的库是Zookeeper即可。)