1、Cluster
Cluster模块是主节点执行集群管理的封装实现,管理集群状态,维护集群层面的配置信息。
主要功能:
管理集群状态,将新生成的集群状态发布到集群所有节点;调用allocation模块执行分片分配,决策那些分片应该分配到哪个节点;在集群各节点中直接迁移分片,保持数据平衡。2、allocation
封装了分片分配相关的功能和策略,包括主分片的分配和副分片的分配,本模块由主节点调用。创建新索引、集群完全重启都需要分片分配的过程。
3、Discovery
发现模块负责发现集群中的节点,以及选举主节点。
4、gateway
负责对收到Master广播下来的集群状态数据的持久化存储,并在集群完全重启时恢复他们。
5、Indices
索引模块管理全局级的索引设置,不包括索引级的。它还封装了索引数据恢复功能。
6、HTTP
HTTP模块允许通过JSON over HTTP的方式访问ES的API。
7、Transport
传输模块用于集群内节点之间的内部通信。
8、Engine
Engine模块封装了对Lucene的操作及translog的调用,它是对一个分片读写操作的最终提供者。
9、Snapshot
快照模块是ES备份、迁移数据的重要手段。它支持增量备份,支持多种类型的仓库存储。
10、ThreadPool
每个节点都会创建一系列的线程池来执行任务。