Elasticsearch 索引副本数

作者:来自 Elastic Kofi Bartlett

解释如何配置 number_of_replicas、它的影响以及最佳实践。

更多阅读:Elasticsearch 中的一些重要概念: cluster, node, index, document, shards 及 replica

想获得 Elastic 认证?查看下一期 Elasticsearch 工程师培训什么时候开始!

Elasticsearch 拥有大量新功能,能帮助你为你的使用场景构建最佳搜索解决方案。深入了解我们的示例笔记本,开始免费云试用,或立即在本地机器上尝试 Elastic。


Elasticsearch 被设计为一个分布式系统,能够处理大量数据并提供高可用性。其中一个关键特性是索引副本的概念,它由 number_of_replicas 设置控制。本文将深入探讨这个设置的细节、其影响以及如何正确配置它。

副本在 Elasticsearch 中的作用

在 Elasticsearch 中,索引是一组文档的集合,这些文档被划分到多个主分片中。每个主分片是一个独立的 Apache Lucene 索引,索引中的文档被分布在所有主分片之间。为了确保高可用性和数据冗余,Elasticsearch 允许每个分片有一个或多个副本,称为副本分片。

number_of_replicas 设置控制 Elasticsearch 为索引中的每个主分片创建多少个副本分片(副本)。默认情况下,Elasticsearch 为每个主分片创建一个副本,但可以根据系统的需求进行更改。

配置 number_of_replicas

number_of_replicas 设置可以在创建索引时配置,也可以在之后更新。以下是在创建索引时设置的方法:

复制代码
PUT /my_index
{
  "settings": {
    "number_of_replicas": 2
  }
}

在这个例子中,Elasticsearch 会为 my_index 索引中的每个主分片创建两个副本。

要更新已存在索引的 number_of_replicas 设置,可以使用 _settings API:

这个命令会将 my_index 索引更新为每个主分片有三个副本。

number_of_replicas 设置的影响

number_of_replicas 设置对 Elasticsearch 集群的性能和弹性有重大影响。以下是一些关键点需要考虑:

  1. 数据冗余和可用性 :增加 number_of_replicas 通过为每个分片创建更多副本来提高数据的可用性。如果某个节点发生故障,Elasticsearch 仍然可以从剩余节点上的副本分片提供数据。
  2. 搜索性能:副本分片可以处理读取请求,因此拥有更多副本可以通过在更多分片之间分配负载来提升搜索性能。
  3. 写入性能 :但每次写入操作都必须在每个分片副本上执行。因此,较高的 number_of_replicas 会因为需要执行更多写操作而降低索引性能。
  4. 存储需求:更多副本意味着更多的存储空间。你需要确保集群有足够的容量来存储额外的副本。
  5. 对节点故障的抗性 :number_of_replicas 应该根据集群中的节点数量来设置。如果副本数量大于等于节点数量,集群可以在多个节点故障的情况下仍然不丢失数据。

设置 number_of_replicas 的最佳实践

最优的 number_of_replicas 设置取决于你系统的具体需求。但以下是一些通用的最佳实践:

  • 对于单节点集群,number_of_replicas 应设置为 0,因为没有其他节点来存储副本。

  • 对于多节点集群,number_of_replicas 应至少设置为 1,以确保数据冗余和高可用性。

  • 如果搜索性能是优先考虑的目标,可以考虑增加 number_of_replicas。但要注意与写入性能和存储需求之间的权衡。

  • 始终确保你的集群有足够的容量来存储额外的副本。

更多阅读:

原文:Elasticsearch Index Number_of_Replicas - Elasticsearch Labs

相关推荐
Decay__4 小时前
05_MySQL 常用 SQL 大全 —— 诊断、管理、优化辅助 SQL 与三大系统库速查
运维·数据库·sql·mysql·架构
Easy_API6 小时前
2.8万亿参数,编程反超GPT-6 Astra:Kimi K3.1 Pro把开源模型推到了哪一步
大数据·人工智能·gpt·深度学习
GlobalInfo6 小时前
2026年机器人多指灵巧手市场分析报告——涵盖行业调查、趋势分析与发展前景
大数据·人工智能·microsoft·微服务·机器人
微订校园外卖平台8 小时前
校园外卖平台选模板还是定制:架构、数据流与验收清单
大数据·架构·外卖系统·本地生活·微订
小徐不徐说8 小时前
C++ 接口与插件设计:从工厂注册到 Qt 动态插件
数据库·c++·qt·系统架构·程序设计
论文复现现场9 小时前
WRF、FEA 能用 L40S 加速吗?求解器检查、断点恢复与长期运行
java·数据库·算法·wrf·有限元分析·gpu计算·断点续算
Eloudy9 小时前
Qwen2.5-14B-Instruct-AWQ 模型文件结构分析
大数据·elasticsearch·搜索引擎
Decay__10 小时前
04_MySQL DBA 日常运维手册 —— 会话管理、锁与阻塞、事务监控、慢查询与日志巡检
运维·数据库·sql·mysql·架构
心梦缘-雪雁11 小时前
SQL Server 查询数据存在哪个表里
数据库
重生之高冷汉堡包12 小时前
跨境电商运营团队如何安全交接店铺账号?多账号权限管理指南
大数据