Elasticsearch8.5.3源码dubug

830 阅读1分钟

编译环境

Gradle:Elasticsearch使用gradle做为构建工具。官网安装说明

JDK17: Elasticsearch 8.5.3 基于jdk17编译。

IDEA导入

IDEA选择File->Open,选择build.gradle文件,点击OK

image.png

点击 OPEN AS PROJECT

image.png

耐心等待工程导入完毕.

远程调试

工程导入完成后,会自创建一个Debug Elasticsearch运行配置.

image.png

点击运行Debug Elasticsearch,启动远程调试。

image.png

Gradle命令启动Elasticsearch

在终端运行./gradlew run --debug-jvm命令,以debug模式启动Elasticsearch。

PS D:\download\elasticsearch-8.5.3\elasticsearch-8.5.3> ./gradlew run --debug-jvm
Starting a Gradle Daemon, 1 busy and 6 stopped Daemons could not be reused, use --status for details
<=======------> 57% CONFIGURING [3m 7s] 

启动完成后,在浏览器输入http://localhost:9200 弹出用户名密码验证框,输入 elastic-admin/elastic-password即可。

修改配置禁用身份认证

Elasticsearch的启动类为org.elasticsearch.bootstrap.Elasticsearch.设置断点跟踪代码可以查看节点配置。

image.png

如图,配置文件在build/testclusters/runTask-0/config目录下,打开elasticsearch.yml配置文件,身份认证是启用的。xpack.security.enabled: true

image.png

但这里没办法直接修改配置,因为此处的文件都临时生成的。这些配置项从elasticsearch.run.gradle文件中创建,修改 setting xpack.security.enabled: false即可

image.png

debug rest api

Elasticsearch的Rest API入口为org.elasticsearch.rest.RestController.dispatchRequest(RestRequest request, RestChannel channel, ThreadContext threadContext)方法,设置一个断点,在浏览器输入http://localhost:9200 回车即可进入断点了。

image.png