Loading... # 通关Elasticsearch面试:核心原理+高频问题+实战加分技巧 ### 1.elasticsearch 了解多少,说说公司 es 的集群架构,索引数据大小,分片有多少,以及一些调优手段 。 * **集群规模**:共 15 个节点,其中: * 3 个 Master 节点(专职选举与管理) * 2 个 Coordinating 节点(主要用于处理查询和请求协调) * 10 个 Data 节点(负责数据的存储与检索) * **ES 版本**:使用的是 Elasticsearch 7.17(或者你实际使用的版本) * **部署方式**:Kubernetes 上 StatefulSet 部署,使用持久化存储(如 Ceph 或 SSD) ✅ 数据与索引设计: * **数据总量**:每天新增数据在 5000 万 \~ 1 亿条左右,当前历史数据总体量大约在 **数百 GB 到 TB 之间**,我们定期归档旧数据。 * **索引设计**: * 按业务通道 + 日期维度进行分索引,比如 `log-<channel>-yyyy.MM.dd` * 每天新建 20\~30 个索引,单索引控制在 **10 分片(primary)+ 1 副本**,这样便于并发写入和检索。 * 热数据保留 7 天在热节点,使用 **Index Lifecycle Management (ILM)** 自动迁移至温节点。 --- ✅ 分片设计与调优: * **分片规划**: * 使用 `shrink` 机制对冷数据索引做分片合并,减少 segment 数量,降低存储与查询开销 * 分片数量控制在每节点不超过 50 个活跃分片,避免集群不稳定(根据社区推荐 best practice) * **性能调优**: * 写入方面: * 使用 Bulk API 写入,单批控制在 5MB\~10MB,避免堆积和 GC 压力 * 减少 refresh 频率(`index.refresh_interval: 30s`)来提升写入吞吐 * 查询方面: * 使用 keyword 字段做聚合/过滤,text 字段做全文检索 * 重要查询加 caching,比如 aggregations、scroll、search\_after 分页 * 存储方面: * 启用 `doc_values` 供排序和聚合使用 * 禁用 `_all` 字段,节省空间 * 热节点采用高性能 SSD,冷节点使用普通机械盘 --- ✅ 使用场景: * **日志系统**:业务日志、接口请求日志、告警记录、链路追踪等 * **全文检索**:搜索业务关键词,如歌华搜索节目,走的就是es 最后修改:2025 年 07 月 02 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 1 如果觉得我的文章对你有用,请随意赞赏