负载均衡solr搜索

时间:2015-03-16 21:33:31

标签: solr cassandra solrj

我正在尝试使用solr在datastax cassandra中实现搜索。我有两个运行cassandra和solr的节点。我能够使用solrj执行solr搜索。但是我有一个节点的硬编码solr url。我想知道需要更改哪些配置/代码更改,以便可以直接选择solr节点。

在这个阶段,我正在从外部文件中读取solrUrl并将其作为参数传递给HttpSolrServer。

HttpSolrServer solrServer = new HttpSolrServer(solrUrl);

外部文件包含solrUrl

Solr.URL=http://192.168.100.12:8983/solr/

我可以对现有方法做些什么改进?

1 个答案:

答案 0 :(得分:0)

  • 您可以使用LBHttpSolrServer(请记住:仅将其用于查询),这样您就可以提供SolrJ用于分发查询的多个服务器。

  • 如果您有Solr Cloud群集,则可以使用SolrJ中的ZooKeeper感知服务器自动分发您的查询。

  • 第三,您可以设置常规的HTTP负载均衡器(例如haproxy,varnish等)来为您分配请求并处理新的服务器上线和服务器消失。

  • 您还可以读取文件中的随机行而不是一个特定的服务器,或者使用分隔符作为配置行并在该分隔符上拆分并随机选择服务器。它不允许您根据查询时间(HTTP负载均衡器可以执行的操作)动态调整权重,但它可能会运行良好。