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 Files\Java\jdk1.8.0_171\bin\java.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:\Users\stw\AppData\Local\Temp\elasticsearch -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:\es\elasticsearch-6.2.4" -Des.path.conf="E:\es\elasticsearch-6.2.4\config" -cp "E:\es\elasticsearch-6.2.4\lib\*" "org.elasticsearch.bootstrap.Elasticsearch"

 文件夾E:\es\elasticsearch-6.2.4\lib\下的org.elasticsearch.bootstrap.Elasticsearch 就是程序的主入口,然后就可以下載源碼,愉快的分析啦

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM