ElasticSearc Shard副本用于搜索

时间:2017-06-17 06:30:11

标签: elasticsearch replication sharding

我是弹性搜索的新手,并尝试使用分片复制品来理解其搜索过程,从弹性搜索的文档中我发现,如果主分片出现故障,则使用分片复制品来处理容错,任何副本分片都可以成为主要分片碎片。

但文档还提到,当搜索流量很大时,它有助于负载平衡

在这种情况下,是否有可能为每个分片设置多个副本,如何选择副本分片来提供搜索?

如果我在其他节点上有一个主要分片和3个副本,那么总共4个副本, 那么当多个搜索请求来到弹性搜索时,每次搜索会转移到这4个副本中的一个吗?

我也在寻找复制碎片使用的一些图形表示,以便更好地理解。

1 个答案:

答案 0 :(得分:1)

旧文档,但仍与分片和图形相关: https://www.elastic.co/guide/en/elasticsearch/guide/current/replica-shards.html https://www.elastic.co/guide/en/elasticsearch/guide/current/_how_primary_and_replica_shards_interact.html

本质上,它是一个重复的数据,使读取速度更快,并防止数据丢失。作为权衡,写入速度较慢,因为您的群集需要写入主分片,然后通过网络将数据传输到副本分片。

读取速度更快的原因是,正如您所提到的,负载在节点之间是平衡的。如果一个节点的响应速度比其他节点快得多,则返回结果的速度要快得多。 https://www.elastic.co/guide/en/elasticsearch/guide/current/distrib-read.html

由于写入速度较慢,因此关闭您正在进行大量批量写入的索引的副本分片是明智的,然后再重新打开副本。

当然,如果要发送频繁的更新,您可能不希望在所有节点上进行数据复制。考虑调整副本并运行性能测试,以便在日常读/写性能之间取得理想的平衡。