SolrCloud分布式检索时忽略宕机的Shard

solrcloud 当一个节点宕机时候,任然可以查询,这是有前提的。比如shard有一个备份,当一个节点宕机了,任然可以查询,因为有备份。但是当此shard节点和所有的备份节点都宕机了,如果查询他会返回:no servers hosting shard,因为现在的索引集合已经不完整了,这种是非常危险的,可能影响业务。比如注册的用户不能登录等等。

有时候我们为了使瞒住当节点宕机后,任然可以查询,且会忽略宕机的shard,solrj中可以添加如下代码:

ModifiableSolrParams params = new ModifiableSolrParams();
params.set("shards.tolerant", "true");

其他资料:

SolrCloud分布式检索时忽略宕机的Shard

Posted on 十月 31, 2012 in: Solr技巧|评论关闭

“<lst name=”error”>
<str name=”msg”>no servers hosting shard:</str>
<int name=”code”>503</int>
</lst>”

 

加入下面参数,只从存活的shards获取数据:

shards.tolerant=true

例如:

<requestHandler name=”/select” class=”solr.SearchHandler”>
<lst name=”defaults”>
<str name=”echoParams”>explicit</str>
<str name=”shards.tolerant”>true</str>
<int name=”rows”>10</int>
<str name=”df”>text</str>
</lst>
</requestHandler>

 

没有打此参数,如果集群内有挂掉的shard,将显示:

no servers hosting shard


你可能感兴趣的:(SolrCloud分布式检索时忽略宕机的Shard)