我使用3台不同的机器进行了solrCloud设置。使用3shards
创建了集合& 2replicas
并将少量文档编入索引。如果我查询使用
网址如下
http:machineIP:8983/solr/collection1/select?q=*:*
我得到了结果。如果我将machineIP更改为任何一台3机器IP,它将起作用。
我的问题是,在请求solr(比如机器1)时机器是否关闭如何将查询请求重定向到其他可用的solr机器(机器2或3)。
我正在寻找一个公共点(或URL)来向solrcloud发送请求。如果机器(或节点)出现故障,请注意,将请求传递给其他可用的机器。
提前致谢, vinod
答案 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作为代理和上游模块。