网站母版页怎么做,江苏建设局网站,wordpress 调用目录,网络推广方式文章目录 前言Elasticsearch 索引的分片和副本是什么意思#xff0c;如何扩展分片示例:1. 设置 5个分片#xff0c;每个分片一个副本的命令2. 将5个分片扩展到10个分片 前言 如果您觉得有用的话#xff0c;记得给博主点个赞#xff0c;评论#xff0c;收藏一键三连啊… 文章目录 前言Elasticsearch 索引的分片和副本是什么意思如何扩展分片示例:1. 设置 5个分片每个分片一个副本的命令2. 将5个分片扩展到10个分片 前言 如果您觉得有用的话记得给博主点个赞评论收藏一键三连啊写作不易啊^ _ ^。 而且听说点赞的人每天的运气都不会太差实在白嫖的话那欢迎常来啊!!! Elasticsearch 索引的分片和副本是什么意思如何扩展分片
当你在 Elasticsearch 中创建一个索引时你可以指定该索引被分成多个分片Shard。分片是索引的基本构建块每个分片都是一个独立的 Lucene 索引它包含了一部分你的数据。分片允许你水平扩展你的索引以处理更大的数据量。
副本Replica是分片的备份。副本的存在提供了数据的冗余增加了系统的可用性和容错性。当主分片不可用时副本可以被提升为主分片从而保证数据的可用性。
例如如果你有一个索引其中包含了 5 个分片和每个分片有 1 个副本那么你实际上有 5 个主分片和 5 个副本共计 10 个分片。这意味着你的索引数据会被分成 10 份每份数据被存储在一个主分片和一个副本中。 分片和副本的数量需要根据你的数据量、负载和可用性要求来进行合理的设置。通常情况下可以通过增加分片数量来扩展索引的容量和吞吐量通过增加副本数量来提高系统的可用性和容错性。然而分片和副本的增加也会带来一些额外的开销因此需要在设计时进行权衡和优化。
示例:
假设你正在构建一个电子商务网站的搜索引擎用于存储商品信息。你创建了一个名为 “products” 的索引来存储所有商品数据。 你决定将 “products” 索引分成 5 个主分片和每个主分片创建一个副本以确保数据的高可用性和容错性。这样你的索引会有 5 个主分片和 5 个副本共计 10 个分片。
现在假设你的网站经历了快速增长商品数量激增导致原先的 5 个主分片无法满足查询需求和索引更新的吞吐量。为了处理更大的数据量和更高的负载你决定增加主分片数量。
你可以通过修改索引的设置来增加主分片的数量比如将主分片数量增加到 10。这样每个原先的主分片将被拆分成两个新的主分片并且每个主分片仍保持一个副本。最终你的索引会有 10 个主分片和 10 个副本共计 20 个分片。 通过增加主分片数量你可以水平扩展你的索引以处理更大的数据量和更高的负载同时保持系统的可用性和容错性。
1. 设置 5个分片每个分片一个副本的命令
PUT /my_index
{settings: {number_of_shards: 5,number_of_replicas: 1}
}下面是我们刚刚建的索引: 设置 5个分片每个分片一个副本。
2. 将5个分片扩展到10个分片
测试之前插入一条数据:
PUT /my_index/_doc/yzy100001
{title: jstat命令查看jvm的GC信息,content: jstat命令查看jvm的GC信息999999999999,author: 糖炒栗子,publish_date: 2024-04-23,tags: [Elasticsearch, Search, Tutorial]
}1、创建新索引修改主分片数量后需要重新创建索引并指定新的主分片数量。 创建新索引:
PUT /my_index_new
{settings: {number_of_shards: 10, // 将主分片数量增加到 10number_of_replicas: 1 // 根据需要设置副本数量}
}通过上面的请求创建一个新的索引 “my_index_new”并将主分片数量设置为 10副本数量根据需要进行设置。 2、重新索引数据重新创建索引后你需要重新索引你的数据以便数据能够被正确地分配到新的主分片中。
POST /_reindex
{source: {index: my_index},dest: {index: my_index_new}
}通过上面的请求重新索引数据将原先索引 “my_index” 中的数据重新索引到新创建的索引 “my_index_new” 中。
完成以上步骤后你的索引 “my_index” 的主分片数量就从 5 增加到了 10并且数据已经被正确地重新索引到了新的索引中。
在新索引中查询我们刚刚插入一条文档看看数据是否转移过去
GET /blog_new/_doc/yzy100001之前的哪个索引就可以干掉了
DELETE /my_index