使用以正确方式在节点之间分发副本

时间:2017-04-20 14:43:55

标签: solr solr5

使用Solr v5.5

我们正在尝试使用以下方法平衡我们的分片副本展示位置: https://cwiki.apache.org/confluence/display/solr/Rule-based+Replica+Placement

我们已经定义了一个规则'replica:< 5,node:*'

我们的设置: 10个Solr实例 20个碎片 2复制因子

所以我们想要的是每个实例托管4个不同的分片,主要用于2,副本用于2个。根据我们的规则,这几乎可以工作,尽管总有一些实例最终会为1或2个分片托管两个副本。 e.g。

instance0: shard1-replica1
           shard1-replica2
           shard2-replica1
           shard2-replica2
instance1: shard3-replica1
           shard3-replica2
           shard4-replica1
           shard5-replica2                  

我们如何改进规则以防止这种冲突?

1 个答案:

答案 0 :(得分:0)

因此,在使用不同规则进行一些测试后,我们发现了规则

shard:*,replica:4,node:*

主要解决了这个问题。这似乎考虑了跨多个集合的集群中的每个分片。我们有两个集合,所以虽然规则强制一个集合每个节点有4个不同的分片,但它并没有强制执行2个引导+ 2个跟随每个节点,这是它之前做过的。

冗余比每个节点的领导/平衡更重要,并且性能似乎是一致的,所以这个解决方案已经足够好了。

相关问题