二、ElasticSearch6.8 源碼遠程調試


一、環境說明

windows編譯ElasticSearch太頭疼了,推薦MacOS或Linux

操作系統:Ubuntu 19.10
IDE:IDEA 20193.4(Community Edition)
JDK:12.0.2
ElasticSearch:6.8.0
Gradle:5.2.1

二、獲取源碼

git clone https://github.com/elastic/elasticsearch.git
cd elasticsearch
#拆分出一個版本用於調試
git checkout -b debug_v6.8.0
#切換至6.8.0版本
git checkout v6.8.0

推薦:

#網絡太慢的話,可以直接下載v6.8.0代碼
https://github.com/elastic/elasticsearch/archive/v6.8.0.zip

三、編譯

環境准備

  • 系統環境准備
# export GRADLE_HOME=/opt/gradle-4.6
export GRADLE_HOME=/opt/gradle-5.2.1
export PATH=$GRADLE_HOME/bin:$PATH

# export JAVA_HOME=/usr/java/jdk1.8.0_191
# export JAVA_HOME=/usr/java/jdk-11.0.6
export JAVA_HOME=/usr/java/jdk-12.0.2
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
export JRE_HOME=$JAVA_HOME/jre
  • gradle准備
    復制一份gradle
cp gradle-5.2.1-bin.zip ~./elasticsearch-6.8.0/gradle/wrapper/
  • 在當前賬戶目錄下的.gradle/下添加名為init.gradle的配置文件
allprojects {
    repositories {
        maven {
            url "https://maven.aliyun.com/nexus/content/groups/public"
        }
    }
}

  • 修改配置文件中的本地gradle和數字簽名
vim elasticsearch-6.8.0/gradle/wrapper/gradle-wrapper.properties
distributionUrl=gradle-5.2.1-bin.zip
distributionSha256Sum=xxx

簽名的內容

sha256sum gradle-5.2.1-bin.zip

2、編譯

  • 修改權限
sudo chmod 777 -R elasticsearch-6.8.0
  • 編譯
gradle idea
  • 編譯成功
BUILD SUCCESSFUL in 8m 11s
347 actionable tasks: 347 executed

四、項目導入

IDEA導入es項目Import Project

選擇gradle

等IDEA構建完成

五、遠程調試

  • 在遠程的ES集群中增加配置(增加調試端口)

在運行ES實例的節點上配置config/jvm.options

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=2222

創建遠程配置

設置遠程參數(端口選擇之前的配置端口)

點擊debug

put一個索引

幾乎ES所有操作都會通過rest api進行操作只要debug在RestController攔截即可


本方法可以調試已啟動節點的運行邏輯,無法debug節點啟動流程


免責聲明!

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



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