【Elasticsearch】IndexService

一句话:

IndexService 就是“一个索引在单个节点里的运行时总管”,负责把这个索引在本节点托管的所有分片(主/副)以及它们要用到的资源、配置、线程池、缓存、监听等全部管理起来。

---

✅ IndexService 的核心职责(节点维度)

模块 作用 

分片生命周期 创建 / 删除 / 关闭本地 IndexShard 实例(每个分片一个)。 

线程池 提供 `index`, `search`, `refresh`, `flush`, `merge` 等线程池的引用,让分片任务有地方跑。 

缓存 管理节点级别的 query cache、field data cache、request cache 等共享缓存。 

MapperService 保存并更新这个索引的映射(mapping);所有分片共用同一份。 

IndexSettings 保存索引级别的动态/静态配置(分片数、副本数、refresh_interval…)。 

EventListener 监听集群状态变化,处理分片分配、恢复、删除等事件。 

Recovery 协调本节点与其他节点之间的分片恢复(peer recovery)。 

---

✅ 与 IndexShard 的关系

- IndexShard = 一个分片的运行时实例  

- IndexService = 该索引在当前节点上所有分片的“大管家”

每个节点会为它托管的每一个索引创建一个 IndexService;

一个 IndexService 里又包含 0…N 个 IndexShard。

---

✅ 一句话总结

> IndexService 是“索引在当前节点上的总控制台”,负责管理该索引在本节点内的所有分片、配置、线程池和缓存等资源。

你可能感兴趣的:(Elasticsearch,elasticsearch)