大家好,我是 @search_engineer,今天分享 Elasticsearch 集群架构设计的实战经验。
为什么需要关注集群架构?
随着业务增长,单节点的 Elasticsearch 很快会遇到瓶颈。合理的集群架构设计可以:
- 支撑海量数据存储
- 提供高可用服务
- 实现水平扩展
- 优化资源利用率
常见集群架构模式
模式一:基础三节点架构
适合场景:中小型企业,数据量 < 10TB
┌─────────┐ ┌─────────┐ ┌─────────┐
│ Master │ │ Master │ │ Master │
│ + Data │ │ + Data │ │ + Data │
└─────────┘ └─────────┘ └─────────┘
Node 1 Node 2 Node 3
配置要点:
- 3 个节点,每个既是 Master 又是 Data
- 最小高可用配置,可容忍 1 个节点故障
- 副本数设置为 1
模式二:读写分离架构
适合场景:写入量大,查询延迟要求高
┌─────────┐ ┌─────────┐ ┌─────────┐
│ Master │ │ Hot │ │ Warm │
│ Node │ │ Node │ │ Node │
└─────────┘ └─────────┘ └─────────┘
专用于管理 新数据/高频查询 旧数据/低频查询
优势:
- 热节点使用 SSD,保证查询性能
- 温节点使用 HDD,降低存储成本
- 自动迁移旧数据到温节点
模式三:大规模分片架构
适合场景:数据量 > 100TB,PB 级存储
┌─────────┐ ┌─────────┐
│ Master │────→│ Master │
│ Node │ │ Node │
└─────────┘ └─────────┘
│ │
└────────────────┘
│
┌───────┴───────┐
↓ ↓
┌─────────┐ ┌─────────┐
│ Data │ │ Data │
│ Node │ │ Node │
│ (Rack 1)│ │ (Rack 2)│
└─────────┘ └─────────┘
关键配置:
- 专用 Master 节点(3-5 个)
- 数据节点按机架分布
- 跨机架副本分配,防止单点故障
节点角色规划
| 角色 | 职责 | 配置建议 |
|---|---|---|
| Master | 集群管理、元数据维护 | 4-8GB 内存,不存储数据 |
| Data | 数据存储、查询执行 | 大内存(32GB+),大磁盘 |
| Ingest | 数据预处理 | 中等配置,可复用 Data 节点 |
| Coordinating | 查询聚合、路由 | 中等配置,可复用 Master 节点 |
容量规划公式
数据节点数量计算
节点数 = 总数据量 / 单节点容量 + 冗余节点
示例:
- 总数据量:50TB
- 单节点容量:10TB
- 冗余:2 个节点
- 节点数 = 50/10 + 2 = 7 个
分片数量规划
总分片数 = 数据节点数 × 每节点分片数
建议:
- 每节点分片数 ≤ 20(查询密集型)
- 每节点分片数 ≤ 50(日志型)
- 单分片大小:20-50GB
实际案例:电商搜索平台
业务需求:
- 商品数据:5 亿文档
- 日增量:1000 万文档
- 查询 QPS:5000
- 查询延迟:P99 < 100ms
架构设计:
Master 节点:3 台(4C8G)
Hot Data 节点:6 台(16C64G + SSD)
Warm Data 节点:4 台(8C32G + HDD)
索引策略:
- 按月份分索引
- 近 3 个月数据在 Hot 节点
- 历史数据自动迁移到 Warm 节点
- 副本数:Hot 2 个,Warm 1 个
监控与运维
关键监控指标
- 集群健康状态(Green/Yellow/Red)
- 节点 JVM 内存使用率
- 磁盘使用率
- 查询延迟(P50/P99)
- 索引速率
常用运维命令
# 查看集群健康
GET /_cluster/health
# 查看节点状态
GET /_cat/nodes?v
# 查看分片分布
GET /_cat/shards?v
# 查看索引统计
GET /_cat/indices?v
总结
ES 集群架构设计的核心原则:
- 高可用:至少 3 个 Master 节点,副本数 ≥ 1
- 可扩展:数据节点可随时扩容
- 成本优化:冷热分离,降低存储成本
- 性能保障:合理规划分片,避免过多过小分片
参考资源
讨论
你的 ES 集群是什么架构?遇到过哪些坑?欢迎在评论区交流!
本文由 @search_engineer 原创发布,转载请注明出处。
[尊重社区原创,转载请保留或注明出处]
本文地址:http://searchkit.cn/article/15676
本文地址:http://searchkit.cn/article/15676