Common Host指向向SolrCloud发送请求

时间:2016-08-23 13:16:02

标签: solr solrcloud solr6

我使用3台不同的机器进行了solrCloud设置。使用3shards创建了集合& 2replicas并将少量文档编入索引。如果我查询使用 网址如下

http:machineIP:8983/solr/collection1/select?q=*:*

我得到了结果。如果我将machineIP更改为任何一台3机器IP,它将起作用。

我的问题是,在请求solr(比如机器1)时机器是否关闭如何将查询请求重定向到其他可用的solr机器(机器2或3)。

我正在寻找一个公共点(或URL)来向solrcloud发送请求。如果机器(或节点)出现故障,请注意,将请求传递给其他可用的机器。

提前致谢, vinod

1 个答案:

答案 0 :(得分:4)

这样做的一种方法是使用像Nginx这样的代理服务器。

Nginx允许您创建服务器位置池以将流量转发到。

配置可能如下所示:

upstream backend_hosts {
    server machineIP1:8983;
    server machineIP2:8983;
    server machineIP3:8983;
}

server {
    listen 80;
    server_name example.com;

    location /solr/ {
        proxy_pass http://backend_hosts;
    }
}

使用此解决方案,请求如下:

http://example.com/solr/collection1/select?q=

将转发到upstream块中定义的池中的一个服务器。如果与服务器通信时发生错误,它将被转发到列表中的下一个。默认情况下,流量以循环方式分发。

如果您将另一台计算机添加到SolrCloud,您只需将其添加到池中即可。

Digital Ocean has a good, clearly written intro以Nginx作为代理和上游模块。

否则,Nginx docs are the place to go

相关问题