【问题标题】:Best practice on number of shards / replicas with Solr Cloud使用 Solr Cloud 的分片/副本数量的最佳实践
【发布时间】:2020-09-18 18:48:10
【问题描述】:

我正在运行具有 3 个 solr 和 3 个 zookeeper 实例的 SolrCloud。为了容错,我现在每个 solr 节点有 3 个分片和 3 个副本。

所以:

numShards [3]
maxShardsPernode[3]
autoAddReplicas [false]
replicationFactor [3]
nrtReplicas[3]

这是推荐的吗?如果我已经有 3 个分片,为什么还需要分布在 3 个实例中的 3 个该分片的副本?

【问题讨论】:

    标签: solr solrcloud


    【解决方案1】:

    分片对于以下方面很重要:

    1. 它允许您水平拆分或缩放内容量。
    2. 它允许您分发操作,例如索引跟踪、 跨分片(可能在多个节点上)因此增加 性能/吞吐量。

    复制:复制的目的既是为了确保高可用性,也是为了提高搜索查询性能,尽管主要目的通常是为了提高容错性。这是通过从不将副本分片与其主分片存储在同一节点上来实现的。

    复制的优点

    1. 拆分读写负载和操作
    2. 搜索查询的负载分布
    3. 搜索的高可用性
    4. 可以创建任意数量的从属实例来扩展查询性能

    建议将复制因子设置为至少 3,这样即使机架发生问题,一份副本始终是安全的。

    假设您有 3 个 solr 服务器实例,分别称为 server1、server2 和 server3。 您已经为您的收藏创建了 3 个分片。 每台服务器上都有一个分片,即 server1 上的 Shard1、服务器 2 上的 shard2 和 server3 上的 shard3。

    让每个服务器上的每个分片都有 3 个副本。

    所以你的 server1 将有 shard1,其他 shard 的副本,如 shard 2 和 shard 3。 其他服务器也是如此。

    如果 2 台服务器出现故障,您仍然拥有一台服务器,其中包含您收集的所有数据。

    这就是复制在实现高可用性方面的美妙之处。

    【讨论】:

      猜你喜欢
      • 2015-05-04
      • 1970-01-01
      • 2017-04-10
      • 1970-01-01
      • 2011-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多