Elasticsearch 基础架构
自顶向下的架构体系
- Cluster — 协同工作的节点组,以保障 Elasticsearch 的运行。
- Node — 运行 Elasticsearch 软件的 Java 进程。
- Index — 组形成逻辑数据存储的分片的集合。
- Shard — Lucene 索引,用于存储和处理 Elasticsearch 索引的一部分。
- Segment — Lucene 段,存储了 Lucene 索引的一部分且不可变。
- Document — —条记录,用以写入 Elasticsearch 索引并从中检索数据。
节点角色划分及资源使用情况
维系 Elasticsearch 高性能的资源组成
4 个基本的计算资源 存储、内存、计算、网络。
存储资源
存储介质
- 固态硬盘(SSD) 提供最佳“热”工作负载的性能。
- 普通磁盘(HDD) 成本低,用于“暖”和“冷”数据存储。
注意:RAID 可以提高性能。RAID 是可选的,因为 Elastic 默认为 N + 1 分片复制策略。
为了追求硬件级别的高可用性,可以接受标准性能的 RAID 配置(例如 RAID 1/10/50 等)。
存储建议
- 建议直接使用:附加存储(DAS)、存储区域网络(SAN)、超融合存储(建议最低〜3Gb / s,250Mb / s)
- 避免使用:网络附加存储(NAS)例如 SMB,NFS,AFP。使用时可能带来的性能问题:网络协议的开销,延迟大和昂贵的存储抽象层。
内存资源
JVM Heap
存储有关集群索引、分片、段和 fielddata 数据。
建议:可用 RAM 的 50%,最多最大 30GB RAM,以避免垃圾回收。
官方文档最大指 32 GB