Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Solr中处理负载平衡?_Java_Solr_Fault Tolerance - Fatal编程技术网

Java 如何在Solr中处理负载平衡?

Java 如何在Solr中处理负载平衡?,java,solr,fault-tolerance,Java,Solr,Fault Tolerance,我有8个solr Shard和3个zookeepers一起运行,有时如果任何服务器出现故障,它会给我以下stacktrace,我可以使用Shard.tolerant=true在查询中处理 我的问题是,在solr cloud中,如何在默认情况下使此容错,以便无论何时启动查询,它都将返回很少的保证结果,而不是异常 ERROR - 2014-09-02 12:01:45.610; org.apache.solr.common.SolrException; org.apache.solr.common.

我有8个solr Shard和3个zookeepers一起运行,有时如果任何服务器出现故障,它会给我以下stacktrace,我可以使用Shard.tolerant=true在查询中处理

我的问题是,在solr cloud中,如何在默认情况下使此容错,以便无论何时启动查询,它都将返回很少的保证结果,而不是异常

ERROR - 2014-09-02 12:01:45.610; org.apache.solr.common.SolrException; org.apache.solr.common.SolrException: no servers hosting shard: 
    at org.apache.solr.handler.component.HttpShardHandler$1.call(HttpShardHandler.java:149)
    at org.apache.solr.handler.component.HttpShardHandler$1.call(HttpShardHandler.java:119)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

如果你的碎片掉了,就会发生这种情况。是否有任何碎片是由于该节点造成的? 你有多少复制品

负载平衡:
如果您使用CloudSolrServer客户端,它将负责负载平衡。在Solr云中,查询是分布式的。

要在Solr云中设置高可用性,至少需要2个Solr实例。创建集合时,请指定碎片数和复制因子,完成此操作后,SolrCloud将在每个副本上为您创建镜像碎片。您还可以确认它在云视图中工作

此时,您只需像以前一样将数据索引到Solr中,它将自动发送到leader实例,然后复制到镜像实例


当一个查询进入时,无论哪个节点接收到它,它都会在SolrCloud中自动跳转以命中给定碎片的实例,然后结果将聚合并发送回客户端

您好,是的,有一个碎片掉了,这就是为什么我会出现这个错误…我只有8个碎片,它们都是领导者,云有大约7000万个文档和2TB的空间,没有副本…您想建议什么?创建至少2个副本来克服丢失一个节点的情况。