Node类源码结构

ElasticSearch 源码分析三 节点Node初始化 && 启动

核心类Node

先看Node的构造函数

1.创建nodeEnvironment,节点的环境信息

2.读取jvm信息  jvmInfo

3.创建pluginService对象,会加载所有的模块和插件

4.然后调用pluginService更新settings配置文件

5.再初始化最终的environment

6.创建一个线程池,包含一个List<ExecutorBuilder<?>>

7.创建各种service ,包括resourceWatcherService,networkService等

8.创建各种模块module,最后都加入到modules

ElasticSearch 源码分析三 节点Node初始化 && 启动

9.bind 方法,体现了guice框架的绑定和依赖注入,调用injector = modules.createInjector();

 

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Node的start方法,节点启动

ElasticSearch 源码分析三 节点Node初始化 && 启动

1.通过injector.getInstance() 加载各种服务,然后调用start()方法启动

ElasticSearch 源码分析三 节点Node初始化 && 启动

2.注入HTTPServerTransport和Transport

3.当node启动后,过滤插件plugin,必须是集群插件ClusterPlugin

4.最后再启动 保活线程

   keepAliveThread.start();

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

ElasticSearch 源码分析三 节点Node初始化 && 启动

 

 

 

相关文章: