我运行的SolrCloud有3个solr和3个zookeeper示例。为了容错,我现在每个solr节点有3个碎片和3个副本。因此:
numShards [3] maxShardsPernode[3] autoAddReplicas [false] replicationFactor [3] nrtReplicas[3]
如果我已经有了3个碎片,为什么还要在3个示例中分布3个副本?
aij0ehis1#
碎片化对于以下方面非常重要:
1.它允许您水平拆分或缩放内容卷。1.它允许您跨分片(可能在多个节点上)分布操作(例如索引跟踪),从而提高性能/吞吐量。复写:复制的目的是确保高可用性和提高搜索查询性能,尽管主要目的通常是提高容错能力。这是通过从不将副本碎片存储在与其主碎片相同的节点上来实现的。
复制的优点:
1.拆分读写负载和操作1.用于搜索查询的负载分布1.搜索的高可用性1.可以创建任意数量的从属示例来扩展查询性能建议将复制因子至少设置为3,这样即使机架发生故障,一个副本也始终是安全的。
假设您有3个solr服务器示例,分别称为server 1、server 2和server 3。您已经为集合创建了3个碎片。每个服务器上都有一个碎片,分别是server 1上的碎片1、server 2上的碎片2和server 3上的碎片3。让我们在每台服务器上为每个碎片创建3个副本。因此,server 1将拥有shard 1,以及其他shard(如shard 2和shard 3)的副本。如果有2台服务器出现故障,您仍然可以使用一台服务器来存储收集的所有数据。这就是复制在实现高可用性方面的优点。
1条答案
按热度按时间aij0ehis1#
碎片化对于以下方面非常重要:
1.它允许您水平拆分或缩放内容卷。
1.它允许您跨分片(可能在多个节点上)分布操作(例如索引跟踪),从而提高性能/吞吐量。
复写:复制的目的是确保高可用性和提高搜索查询性能,尽管主要目的通常是提高容错能力。这是通过从不将副本碎片存储在与其主碎片相同的节点上来实现的。
复制的优点:
1.拆分读写负载和操作
1.用于搜索查询的负载分布
1.搜索的高可用性
1.可以创建任意数量的从属示例来扩展查询性能
建议将复制因子至少设置为3,这样即使机架发生故障,一个副本也始终是安全的。
假设您有3个solr服务器示例,分别称为server 1、server 2和server 3。您已经为集合创建了3个碎片。每个服务器上都有一个碎片,分别是server 1上的碎片1、server 2上的碎片2和server 3上的碎片3。
让我们在每台服务器上为每个碎片创建3个副本。
因此,server 1将拥有shard 1,以及其他shard(如shard 2和shard 3)的副本。
如果有2台服务器出现故障,您仍然可以使用一台服务器来存储收集的所有数据。
这就是复制在实现高可用性方面的优点。