分片与副本
Elasticsearch 作为分布式搜索引擎,利用分片和副本机制实现数据的高可用与水平扩展。理解这两个概念对于索引设计和集群管理至关重要。
1. 分片(Shard)
索引可以被拆分成多个分片,每个分片是一个独立的 Lucene 索引,存储索引数据的一个子集。分片使得索引可以分布在多个节点上,实现并行处理。
- 主分片(Primary Shard):负责写入和索引数据的主要分片。
- 分片数量:创建索引时指定,创建后不可更改。
2. 副本(Replica)
副本是主分片的拷贝,提供数据冗余和查询负载均衡功能。副本分片保证在主分片发生故障时数据不会丢失。
- 副本数量:可以动态调整,推荐至少配置1个副本。
3. 分片与副本配置示例
PUT /my-index
{
"settings": {
"number_of_shards": 3,
"number_of_replicas": 1
}
}
`
4. 工作原理
- 写入数据先写入主分片,再同步到副本分片
- 查询请求会被路由到主分片或副本分片,提高并发性能
- 当节点故障时,副本分片可升级为主分片,保障数据安全
5. 设计建议
- 分片数量应根据数据量与节点数合理规划,避免分片过多导致资源浪费
- 副本数量影响数据安全与查询性能,生产环境建议至少设置1个副本
- 扩展时可增加节点,Elasticsearch 会自动重新分配分片
掌握分片与副本机制,有助于构建稳定、高效的分布式 Elasticsearch 集群,满足业务的扩展和高可用需求。
相关内容
- 定义与用途 本章介绍 Elasticsearch 的定义、核心功能与适用场景,帮助读者理解它为何成为现代搜索与日志分析的首选解决方案。
- 使用场景 本章总结 Elasticsearch 在全文搜索、日志分析、监控告警、推荐系统等领域的典型应用场景,助力理解其强大用途。
- 核心概念简介 本章概览 Elasticsearch 的核心构成,包括索引、文档、映射、节点、集群等关键概念,为后续使用和架构设计打下基础。
- 本地安装 本章介绍如何在本地环境中安装 Elasticsearch,适配 Windows、macOS 和 Linux 系统,便于开发测试与入门学习。
- Docker 安装 本章讲解如何通过 Docker 安装和运行 Elasticsearch,适合开发者快速搭建测试环境并集成至容器化工作流中。
- 与 Kibana 一起部署 本章介绍如何将 Elasticsearch 与 Kibana 一起部署,使用 Docker Compose 快速构建可视化分析平台,适合开发与测试环境使用。