ElasticSearch 分片副本在搜索中的使用
ElasticSearc Shard Replica use in search
我是 elastic search 的新手,并试图了解其使用分片副本的搜索过程,从 elastic search 的文档中我发现分片副本用于处理主分片出现故障时的容错,任何副本分片都可以制作主碎片。
但是文档还提到它在搜索流量很大时有助于负载平衡
也有可能每个分片有一个以上的副本,在这种情况下如何选择副本分片来服务于搜索?
是否就像我在其他节点上有一个主分片和 3 个副本,所以总共 4 个副本,
那么当多个搜索请求进入弹性搜索时,每个搜索都会被转移到这 4 个副本中的一个吗?
我也在寻找副本碎片使用情况的一些图形表示,以便更好地理解。
旧文档,但仍与分片分配和图形相关:
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
因为写入速度较慢,明智的做法是为您正在进行大量写入的索引关闭副本分片,然后再打开副本。
当然,如果您要发送频繁的更新,您可能不希望在 所有 节点之间重复数据。考虑调整副本和 运行 性能测试,以在常规 read/write 性能之间取得理想的平衡。
我是 elastic search 的新手,并试图了解其使用分片副本的搜索过程,从 elastic search 的文档中我发现分片副本用于处理主分片出现故障时的容错,任何副本分片都可以制作主碎片。
但是文档还提到它在搜索流量很大时有助于负载平衡
也有可能每个分片有一个以上的副本,在这种情况下如何选择副本分片来服务于搜索?
是否就像我在其他节点上有一个主分片和 3 个副本,所以总共 4 个副本, 那么当多个搜索请求进入弹性搜索时,每个搜索都会被转移到这 4 个副本中的一个吗?
我也在寻找副本碎片使用情况的一些图形表示,以便更好地理解。
旧文档,但仍与分片分配和图形相关: 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
因为写入速度较慢,明智的做法是为您正在进行大量写入的索引关闭副本分片,然后再打开副本。
当然,如果您要发送频繁的更新,您可能不希望在 所有 节点之间重复数据。考虑调整副本和 运行 性能测试,以在常规 read/write 性能之间取得理想的平衡。