zoukankan      html  css  js  c++  java
  • elasticsearch源码分析第一步——找到ES的入口

    相要解开缠绕的毛线,先要找到线团的开头;

    想知道ES的内部工作原理,先要找到入口,找到入口Main函数;

    从官网上下载ES后解压后,猛一看,这么多

    分析一下整个结构:

    1. bin目录是启动文件夹
    2. config是配置文件夹
    3. data自然是存放数据的
    4. lib和modules是用的一些JAR
    5. logs是日志记录

    那么问题来啦?挖掘机,怎样挖到入口那?

    进入BIN目录,文件列表如下:

    其中:elasticsearch.bat 是其中ES的脚本,其中一定有java -jar 等配置,所以我们中这个文件中查找

    打开文件一堆批处理指令,顿时头大如斗,冷汗直流

     

     其中看到这一条:

    是加载elasticsearch-env.bat批处理文件的环境变量,先不管这个文件,定位到elasticsearch.bat文件的最后,我们看到:

     这应该就是我们要找的启动,但是这么多变量,怎么解析出来那?  

    我们添加上这样的一句:

     echo 完全复制启动指令 > ./bin/info.txt  然后启动这个脚本,整个指令我们就会在info.txt中拿到:

    "D:Program FilesJavajdk1.8.0_171injava.exe" -Xms1g -Xmx1g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -XX:-OmitStackTraceInFastThrow -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Djava.io.tmpdir=C:UsersstwAppDataLocalTempelasticsearch -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=32 -XX:GCLogFileSize=64m -Delasticsearch -Des.path.home="E:eselasticsearch-6.2.4" -Des.path.conf="E:eselasticsearch-6.2.4config" -cp "E:eselasticsearch-6.2.4lib*" "org.elasticsearch.bootstrap.Elasticsearch"

     文件夹E:eselasticsearch-6.2.4lib下的org.elasticsearch.bootstrap.Elasticsearch 就是程序的主入口,然后就可以下载源码,愉快的分析啦

  • 相关阅读:
    Java实现大批量数据导入导出(100W以上) -(三)超过25列Excel导出
    华为狼性文化与新员工引导
    盈利模式!商业保理 VS银行保理
    供应链金融保理业务最全解析-四大模式
    Spring Boot下Bean定义方式及调用方式
    Java非侵入式API接口即文档工具apigcc
    Java一个简单的重试工具包
    多层级汇总报表生成
    Spring事物隔离级别及事物传播行为@Transactional实现
    四种事物隔离级别详解
  • 原文地址:https://www.cnblogs.com/becoding/p/13450204.html
Copyright © 2011-2022 走看看