文章目录
- 1.概述
- 2. 主要流程
-
- 2.1 主方法
- 2.2 execute 方法
- 2.3 Bootstrap.init
- 2.4 INSTANCE.setup方法
- 2.5 创建节点
-
- 2.5.1 创建PluginsService
- 2.5.2 创建ThreadPool及ThreadContext实例
- 2.5.3 初始化 ResourceWatcherService
- 2.5.4 创建 NodeClient
- 2.5.5 创建 ScriptModule ScriptService
- 2.5.6 创建 AnalysisModule
- 2.5.7 初始化 SettingsModule
- 2.5.8 初始化 NetworkService
- 2.5.9 初始化 ClusterService
- 2.5.10 初始化 ConsistentSettingsService
- 2.5.11 初始化 IngestService
- 2.5.12 初始化 ClusterInfoService
- 2.5.13 初始化 UsageService
- 2.5.14 初始化 MonitorService
- 2.5.15 初始化 IndicesModule
- 2.5.16 初始化 SearchModule
- 2.5.17 初始化 GatewayModule
- 2.5.18 初始化 PageCacheRecycler
- 2.5.19 初始化 NamedWriteableRegistry
- 2.5.20 初始化 MetaStateService
- 2.5.21 初始化 IndicesService
- 2.5.22 初始化 AliasValidator
- 2.5.23 初始化 MetadataCreateIndexService
- 2.5.24 初始化 ActionModule
- 2.5.25 初始化 RestController
- 2.5.26 初始化 NetworkModule
- 2.5.27 初始化 MetadataUpgrader
- 2.5.28 初始化 MetadataIndexUpgradeService
- 2.5.29 初始化 Transport
- 2.5.30 初始化 TransportService
- 2.5.31 初始化 GatewayMetaState
- 2.5.32 初始化 ResponseCollectorService
- 2.5.33 初始化 SearchTransportService
- 2.5.34 初始化 HttpServerTransport
- 2.5.35 初始化 RepositoriesModule
- 2.5.36 初始化 RepositoriesService
- 2.5.37 初始化 SnapshotsService SnapshotShardsService
- 2.5.38 初始化 TransportNodesSnapshotsStatus
- 2.5.39 初始化 RestoreService
- 2.5.40 初始化 RerouteService
- 2.5.41 初始化 DiskThresholdMonitor
- 2.5.42 初始化 DiscoveryModule
- 2.5.43 初始化 NodeService
- 2.5.44 初始化 SearchService
- 2.5.45 初始化 PersistentTasksExecutorRegistry PersistentTasksClusterService
- 2.5.46 初始化 PersistentTasksService
- 2.5.47 初始化 modules
- 2.5.48 初始化http handlers
- 2.6 start方法
- N.扩展阅读
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/e0a396b3a505b6f6855ce4a09995b3a1.png)
1.概述
Elasticsearch的bootstrap代码写得很好的server,当中包含了大量的自检和环境检测代码,甚至用到了JNA来做OS层面的参数获取和设置。
Elasticsearch的启动流程主要涉及Elasticsearch、Bootstrap和Node三个类。主要包括加载三个步骤:
加载本地环境:读取命令行参数和配置文件,生成本地环境配置
创建Node:创建节点实例,创建各种服务类对象,注入各种功能模块
启动Node:启动各种服务,加入集群
1.1 核心类
ES的启动流程主要包含以下核心类:
2. 主要流程
Elasticsearch - main入口方法,Bootstrap - 启动相关静态辅助类。当中启动了一个keepAliveThread的前台线程,防止所有daemon线程终止后,整个进程推出
;setup中做了大量自检和环境监测