ES 源代码阅读(一)「建议收藏」

ES 源代码阅读(一)

大家好,又见面了,我是全栈君。

启动流程分析:

入口:org.elasticsearch.bootstrap.Elasticsearch->org.elasticsearch.bootstrap.Bootstrap->

生成实例->写进程号->初始化配置文件->初始化设置实例->运行->关闭处理

在初始化设置实例过程中
使用初始化的配置文件初始化node实例,并设置关闭处理.在初始化node过程中,初始化的是InternalNode实例.
在其中的start方法中 使用guice框架,加载不同模块.
首先加载Discovery.class实例,然后执行设置其路由服务.
根据配置可以生成LocalDiscovery和ZenDiscovery.
然后初始化MappingUpdateAction.启动相关线程.
然后依次加载:IndicesService,和IndexingMemoryController,IndicesClusterStateService,IndicesTTLService
RiversManager,SnapshotsService,
TransportService 启动一系列工作线程.
ClusterService ,RoutingService,SearchService,MonitorService,RestController.

LocalGatewayAllocator 初始化

启动DiscoveryService 启动相关线程,初始化GatewayService,启动HTTPServer 启动相关线程,初始化BulkUdpService,初始化ResourceWatcherService,初始化TribeService
以上全部组件设置为启动状态.

当Es处理请求时,会根据请求创建相关EVENT,然后将其和一系列相关listener结合交给线程池去执行,执行过程总,会遍历每个listener,其中传递的参数就是Event,然后执行相关操作.

接下来会结合实际创建索引时的实例来进行源码分析.

转载于:https://my.oschina.net/u/937015/blog/758184

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/108841.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 我用了两年时间去读《Thinking in Java》

    我用了两年时间去读《Thinking in Java》路漫漫其修远兮,吾将上下而求索。——题记我用了两年时间去读《Think…

    2022年7月7日
    34
  • LASSO回归与L1正则化 西瓜书「建议收藏」

    1.结构风险与经验风险在支持向量机部分,我们接触到松弛变量,正则化因子以及最优化函数,在朴素贝叶斯分类,决策树我们也遇到类似的函数优化问题。其实这就是结构风险和经验风险两种模型选择策略,经验风险负责最小化误差,使得模型尽可能的拟合数据,而结构风险则负责规则化参数,使得参数的形式尽量简洁,从而达到防止过拟合的作用.所以针对常见模型,我们都有下式:                           …

    2022年4月11日
    78
  • Maven之(七)pom.xml配置文件详解[通俗易懂]

    Maven之(七)pom.xml配置文件详解[通俗易懂]鉴于CSDN对**版权保护的不作为**以及落后的运营手段,本博客将于近期关闭,并清空全部文章。原有文章将会经过再次的校对、整理,转移至本人在**简书**的[博客空间](https://www.jianshu.com/u/3ec23ef9a408)。…

    2022年7月20日
    11
  • MATLAB处理图像_matlab视频图像处理

    MATLAB处理图像_matlab视频图像处理RGB图像转为灰度图像:X=rgb2gray(I)

    2022年9月28日
    4
  • HTML5移动开发的10大移动APP开发框架

    HTML5移动开发的10大移动APP开发框架今天给大家介绍10款有关HTML5移动开发APP开发框架,这几款框架都是比较优秀的移动Web开发框架,能够帮助开发者更加高效的开发移动Web应用。.  十款移动APP开发框架:1.jquerymobile框架2.bootstrap框架3.ionic框架4.MobileAngularUI框架5.IntelXDK框架6.AppceleratorTitanium框架7.Senc

    2022年6月21日
    27
  • c++ sort 二维数组排序_二维数组升序排列

    c++ sort 二维数组排序_二维数组升序排列以往遇到行排列问题(按每行的字典序排序)的时候,总是使用结构体来进行排序,但是如何使用二维数组来达到同样的效果呢?实验内容:利用二维数组进行“三级排序”测试1:使用c++内置的普通型二维数组#include<algorithm>#include<iostream>usingnamespacestd;boolcmp(inta[],intb[]){ …

    2022年8月12日
    11

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号