为什么在有副本时使用分片

时间:2014-10-22 12:26:34

标签: cluster-computing replication sharding solrcloud

我正在使用Solr并拥有一个包含动态字段的集合。

我的目标是设置SolrCloud,SolrWiki推荐这个: https://wiki.apache.org/solr/SolrCloud#Example_C:_Two_shard_cluster_with_shard_replicas_and_zookeeper_ensemble

从我的理解,复制为您提供负载平衡和冗余,因为它是一个直接的副本。 Sharding为您提供负载平衡并获取索引的一半内存,但您依赖于两者的工作。

因此,当他们使用4台服务器设置这样的集群时,请求的速度是否大约快4倍? 如果你只有1个具有4个副本的分片,那么冗余会增加4倍吗?

我理所当然地认为拥有虚拟服务器是没有意义的,因为它不会给你更多的CPU来同时工作。

1 个答案:

答案 0 :(得分:0)

在SolrCloud中添加更多副本可以提高并发性并添加更多分片可以缩短查询响应时间。 换句话说,如果原始查询在1秒内​​返回,则添加更多副本可能不会改善响应时间,但会在每个时间段内为您提供更多结果。 但是,将索引拆分为更多碎片会明显缩短响应时间。

因此,如果将索引从1个分片拆分为4个分片,则查询速度将提高近4倍。 但是如果你选择有1个具有4个副本的分片,那么查询响应时间可能只会略有改善。