您当前的位置: 首页 >  ar

宝哥大数据

暂无认证

  • 1浏览

    0关注

    1029博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

《Elasticsearch 源码解析与优化实战》第4章:节点启动和关闭

宝哥大数据 发布时间:2021-10-11 09:23:57 ,浏览量:1

文章目录
  • 简介
  • 二、启动流程
    • 2.1、启动流程做了什么
    • 2.2、启动流程分析
      • 2.2.1、启动脚本
      • 2.2.2、解析命令行参数和配置文件
      • 2.2.3、加载安全配置
      • 2.2.4、检查内部环境
      • 2.2.5、检测外部环境
        • 1、堆大小检查
        • 2、文件描述符检查
        • 3、内存锁定检查
        • 4、最大线程数检查
        • 5、最大虚拟内存检查
        • 6、最大文件大小检查
        • 7、虚拟内存区域最大数量检查
        • 8、JVM Client模式检查
        • 9、串行收集检查
        • 10、系统调用过滤器检查
        • 11、OnError与OnOutOfMemoryError检查
        • 12、Early-access检查
        • 13、G1GC检查
      • 2.2.5、启动内部模块
      • 2.2.5、启动keepalive线程
  • 三、节点关闭
    • 3.1、节点关闭流程
    • 3.2、关闭流程分析
    • 3.3、分片读写过程中执行关闭
    • 3.4、主节点被关闭
  • 四、小结
  • 关注我的公众号【宝哥大数据】,更多干货。。。

简介

本章分析单个节点的启动和关闭流程。看看进程是如何解析配置、检查环境、初始化内部模块的,以及在节点被“kill”的时候是如何处理的。

二、启动流程 2.1、启动流程做了什么

总体来说,节点启动流程的任务是做下面几类工作:

  • 解析配置,包括配置文件和命令行参数。
  • 检查外部环境和内部环境,例如,JVM版本、操作系统内核参数等。
  • 初始化内部资源,创建内部模块,初始化探测器。
  • 启动各个子模块和keepalive线程。
2.2、启动流程分析 2.2.1、启动脚本

当我们通过启动脚本 bin/elasticsearch启动 ES 时,脚本通过exec加载Java程序。代码如下:

exec \    #执行命令
    "$JAVA" \     #Java 程序路径
    $ES JAVA OPTS \     #JVM 选项
    -Des . path. home="$ES_ HOME" \     #设置path. home路径
    -Des. path.conf="$ES_ PATH_ CONF" \     #设置path.conf路径
    -cp "$ES_ CLASSPATH" \     #设置java classpath
    org. elasticsearch. bootstrap.Elasticsearch \     #指定main函数所在类
    "$@"     #传递给main函数命令行参数

ES_JAVA_OPTS 变量保存了JVM参数,其内容来自对config/jvm.options配置文件的解析。 如果执行启动脚本时添加了-d参数:

bin/elasticsearch -d 

则启动脚本会在exec中添加

关注
打赏
1587549273
查看更多评论
立即登录/注册

微信扫码登录

0.0459s