在深入学习elasticsearch的过程中,遇到有疑惑的源码时,如果能打断点单步调试,往往会取得事半功倍的效果,今天的实战内容就是通过IntelliJ IDEA远程连接运行中的elasticsearch服务,然后单步运行代码;
本次实战会用到两台电脑,一台Ubuntu运行着elasticsearch6.1.2版本,另一台Win10运行着IntelliJ IDEA,详细的版本信息如下:
当然,您也可以将elasticsearch和IntelliJ IEDA运行在同一台电脑上,并没有什么差别;
在Ubuntu上做以下设置:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5678
Listening for transport dt_socket at address: 5678
[2019-04-20T07:10:36,449][INFO ][o.e.n.Node ] [] initializing ...
[2019-04-20T07:10:36,570][INFO ][o.e.e.NodeEnvironment ] [stNJgHX] using [1] data paths, mounts [[/ (/dev/sda2)]], net usable_space [93.5gb], net total_space [109gb], types [ext4]
[2019-04-20T07:10:36,570][INFO ][o.e.e.NodeEnvironment ] [stNJgHX] heap size [990.7mb], compressed ordinary object pointers [true]
[2019-04-20T07:10:36,572][INFO ][o.e.n.Node ] node name [stNJgHX] derived from node ID [stNJgHXSQZObhO-ze917hA]; set [node.name] to override
elasticsearch启动成功后,回到要运行IntelliJ IDEA的电脑上,执行以下操作:
gradle idea
至此,IntelliJ IDEA远程调试elasticsearch的实战就完成了,在您学习elasticsearch的过程中,希望本文能给您带来一些参考。
除了远程调试,自己修改和编译elasticsearch源码也是有效的学习手段,推荐您参考文章《Elasticsearch6.1.2源码下载和编译构建》。