elasticsearch源码简读:程序启动
来源:互联网 发布:淘宝租房网 编辑:程序博客网 时间:2024/06/05 12:47
启动类:以下具体实现:
1.生成PID文件
2.初始化配置,日志初始化
3.设置是否mlockall,节点配置,在此通过guice依赖注入机制进行模块化加载,加载以下几个模块:
5.启动keepalive线程,使用keepAliveLatch,初始化1,每次调用close时countDown
1.org.elasticsearch.bootstrap.Elasticsearch
[java] view plain copy
- public static void main(String[] args) {
- Bootstrap.main(args);
- }
1.生成PID文件
2.初始化配置,日志初始化
3.设置是否mlockall,节点配置,在此通过guice依赖注入机制进行模块化加载,加载以下几个模块:
- ModulesBuilder modules = new ModulesBuilder();
- modules.add(new Version.Module(version)); //版本模块
- modules.add(new CacheRecyclerModule(settings)); //缓存回收模块
- modules.add(new PageCacheRecyclerModule(settings));//页面缓存回收模块
- modules.add(new CircuitBreakerModule(settings)); //分词模块
- modules.add(new BigArraysModule(settings));
- modules.add(new PluginsModule(settings, pluginsService));//插件模块
- modules.add(new SettingsModule(settings)); //参数配置模块
- modules.add(new NodeModule(this)); //节点模块
- modules.add(new NetworkModule()); //网络模块
- modules.add(new ScriptModule(settings)); //本地脚本模块,支持groovy,mustache,lucene expressions
- modules.add(new EnvironmentModule(environment));//环境模块
- modules.add(new NodeEnvironmentModule(nodeEnvironment)); //节点环境模块
- modules.add(new ClusterNameModule(settings)); //集群名称模块
- modules.add(new ThreadPoolModule(settings)); //线程池模块
- modules.add(new DiscoveryModule(settings)); //自动发现模块
- modules.add(new ClusterModule(settings)); //集群模块
- modules.add(new RestModule(settings)); //rest服务模块
- modules.add(new TransportModule(settings)); //TCP模块
- if (settings.getAsBoolean(HTTP_ENABLED, true)) {
- modules.add(new HttpServerModule(settings)); //HTTP服务模块
- }
- modules.add(new RiversModule(settings)); //river模块
- modules.add(new IndicesModule(settings)); //索引模块
- modules.add(new SearchModule()); //搜索模块
- modules.add(new ActionModule(false)); //action模块
- modules.add(new MonitorModule(settings)); //监控模块
- modules.add(new GatewayModule(settings)); //持久化模块,可用于集群状态恢复
- modules.add(new NodeClientModule()); //节点客户端模块
- modules.add(new BulkUdpModule()); //UDP批量模块
- modules.add(new ShapeModule()); //索引模板服务
- modules.add(new PercolatorModule()); //搜索过滤模块
- modules.add(new ResourceWatcherModule()); //资源监控模块
- modules.add(new RepositoriesModule()); //容器模块
- modules.add(new TribeModule()); //部族模块,允许不同集群互相注册访问
- injector = modules.createInjector();
- client = injector.getInstance(Client.class);
4.启动节点,节点启动时为各个模块加载实例,如下:
- injector.getInstance(MappingUpdatedAction.class).start();
- injector.getInstance(IndicesService.class).start();
- injector.getInstance(IndexingMemoryController.class).start();
- injector.getInstance(IndicesClusterStateService.class).start();
- injector.getInstance(IndicesTTLService.class).start();
- injector.getInstance(RiversManager.class).start();
- injector.getInstance(SnapshotsService.class).start();
- injector.getInstance(TransportService.class).start();
- injector.getInstance(ClusterService.class).start();
- injector.getInstance(RoutingService.class).start();
- injector.getInstance(SearchService.class).start();
- injector.getInstance(MonitorService.class).start();
- injector.getInstance(RestController.class).start();
- DiscoveryService discoService = injector.getInstance(DiscoveryService.class).start();
- discoService.waitForInitialState();
- // gateway should start after disco, so it can try and recovery from gateway on "start"
- injector.getInstance(GatewayService.class).start();
- if (settings.getAsBoolean("http.enabled", true)) {
- injector.getInstance(HttpServer.class).start();
- }
- injector.getInstance(BulkUdpService.class).start();
- injector.getInstance(ResourceWatcherService.class).start();
- injector.getInstance(TribeService.class).start();
5.启动keepalive线程,使用keepAliveLatch,初始化1,每次调用close时countDown
0 0
- elasticsearch源码简读:程序启动
- elasticsearch源码简读:程序启动
- elasticsearch源码分析--启动进程
- elasticsearch源码研究之启动
- Elasticsearch源码分析(一)启动流程
- elasticsearch源码分析之启动过程
- elasticsearch 启动
- elasticsearch源码分析之启动过程(二)
- ElasticSearch 5.0 不能使用root启动源码分析
- elasticsearch源码分析之启动过程(二)
- ElasticSearch源码
- Openfire源码分析----程序启动
- 飞鸽传书源码分析-程序启动过程
- 飞鸽传书源码分析-程序启动过程
- 飞鸽传书源码分析-程序启动过程
- nginx源码学习(一)程序启动
- elasticsearch作为服务启动
- Elasticsearch 启动配置
- Java 8新特性探究(五):重复注解(repeating annotations)
- 使用photoshop画虚线框
- 最大公约数&最小公倍数
- AndroidMainfest.xml详解——<uses-permission/>
- Exception Type: EXC_BAD_ACCESS (SIGSEGV)
- elasticsearch源码简读:程序启动
- sqlite数据库的使用
- 隐藏过长的文本,不使文本换行,隐藏的文本结尾为...
- c++ STL中容器迭代器失效
- UML知识总结
- CentOS 6.5 设置最大文件描述符
- SPICE协议定义----显示通道(1)
- Second records of career
- IIS中遇到无法预览的问题(HTTP 错误 401.3 - Unauthorized 由于 Web 服务器上此资源的访问控制列表(ACL)配置或加密设置,您无权查看此目录或页面。)