节点角色 · 集群发现 · 分片路由 · 近实时引擎目 录一、导读二、Lucene 索引与近实时引擎2.1 段Segment与提交2.2 近实时刷新Refresh2.3 段合并与 flush三、节点角色与集群组织3.1 节点角色3.2 集群发现四、分片路由与协调4.1 分片与副本4.2 协调节点处理流程4.3 读写路径与副本一致五、架构要点对比5.1 本篇小结一、导读第 01 篇认识了 Elasticsearch 的定位与倒排索引。本讲逐层拆解其架构底层是「Lucene 索引与近实时引擎」负责段文件、刷新与合并中层是「节点与集群」以角色划分主/数据/协调/摄取节点并通过集群发现互相感知上层是「分片路由与协调」把请求分发到目标分片聚合返回。理解这三层才能看懂 ES 为何近实时、如何水平扩展。二、Lucene 索引与近实时引擎2.1 段Segment与提交Elasticsearch 底层封装 Apache Lucene。每个分片内部由若干不可变的「段」Segment组成一个段就是一个倒排索引子集。段一旦生成便只读配合删除标记实现更新避免原地修改带来的锁与磁盘碎片。2.2 近实时刷新Refresh写入先进入内存缓冲并追加到 translog事务日志保障崩溃可恢复。默认每约 1 秒index.refresh_interval把缓冲中新文档生成一个可被搜索的新段这就是「近实时」的来源——刚写入的数据约 1 秒后可被检索。2.3 段合并与 flush随时间推移会产生大量小段后台「段合并」Merge按分层策略把小的合并为大的减少段数量、提升检索效率但合并瞬间可能增大 I/O 压力。flush 则是把内存段持久化到磁盘并清空 translog 的过程。三、节点角色与集群组织3.1 节点角色节点角色 职责主节点 master 集群元数据管理、分片分配决策数据节点 data 承载主/副本分片负责索引与检索协调节点 coordinating 接收请求并分发聚合默认角色之一摄取节点 ingest 写入前的管道预处理机器学习/转换节点 ML 任务与跨索引聚合生产建议单节点可同时承担多角色大规模集群宜让「仅 master」与「仅数据」节点分离并用专用协调节点隔离聚合开销避免主节点负载过重。3.2 集群发现节点通过集群发现Discovery互相感知并选出一个活跃主节点。Elasticsearch 8 默认使用基于安全证书的权威主机discovery.seed_hosts cluster.initial_master_nodes不再默认依赖组播或 Zen Ping 的无鉴权发现提升安全性。四、分片路由与协调4.1 分片与副本索引创建时指定主分片数不可轻易修改每个主分片可有若干副本分片默认 1。文档按路由值默认 _id 哈希路由到具体分片分片分布在不同节点上实现水平扩展与容错。生产建议单个主分片控制在 10–50 GB 左右过小则分片过多、过大则均衡与恢复缓慢。路由示例// 按 _id 哈希路由到分片同一索引所有节点共享分片shard hash(routing) % number_of_primary_shardsPUT /article/_doc/14.2 协调节点处理流程•接收请求解析集群状态确定目标索引与分片。•将请求分发到相关主/副本分片所在节点。•各分片本地检索后协调节点归并排序、执行聚合。•返回最终结果给客户端。4.3 读写路径与副本一致写入由主分片完成并同步到副本副本写确认后可配置 wait_for_active_shards 控制检索默认在主、副本分片间负载均衡可设置 routing 或 preference 控制读哪个副本兼顾一致性与读扩展。五、架构要点对比维度 机制 作用存储 Lucene 不可变段 倒排索引 高效全文检索近实时 refresh 每约 1 秒 translog 秒级可见、崩溃可恢复集群 节点角色 集群发现 元数据一致、选主分片 主分片 副本 水平扩展与容错协调 协调节点分发聚合 统一检索归并合并 后台段合并 减少段数、提升效率5.1 本篇小结本讲从引擎、集群、路由三层拆解 ES 架构底层 Lucene 段文件支撑近实时检索与后台合并节点角色划分与集群发现组织起分布式集群分片路由与协调节点完成请求分发与结果归并。理解这三层是后续核心原理、部署与选型的基础。下一篇进入核心原理深入倒排索引物理结构、BM25 相关性打分与段合并策略。