IntelliJ IDEA 远程调试 Elasticsearch6,mysql 数据库开发技术
正常启动 elasticsearch,如果没有选择后台启动,可以在控制台看到如下信息,可见已经开始监听 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
IntelliJ IDEA 上的操作
elasticsearch 启动成功后,回到要运行 IntelliJ IDEA 的电脑上,执行以下操作:
下载 elasticsearch6.1.2 源码,地址是:https://github.com/elastic/elasticsearch/releases
上述网站中有各个版本的 release,找到我们需要 的 6.1.2 版本,然后下载压缩包,如下图:

下载完毕后,解压得到 elasticsearch-6.1.2 目录,打开命令行进入该目录,执行 gradle idea,将源码生成 IntelliJ IDEA 工程:
gradle idea
打开 IntelliJ IDEA,用 import 的方式导入上述工程,注意选择类型为 Gradle,如下图:

注意 Gradle 的版本号,推荐 4.6 版本,如下图:

等待 IDEA 导入依赖和构建完成,如下图:

源码导入成功后开始远程调试,菜单操作如下图:

新增一个远程配置,如下图:

在新配置项的设置窗口,按照下图所示进行配置,输入合适的配置名称,elasticsearch 服务所在机器的 IP 地址,端口号 5678,然后点击底部的 OK 按钮:

如下图,这时候在工具栏上可以看见上面配置的 elastic6.1.2,选中
《一线大厂 Java 面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》
【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享
后点击红框 2 中的 debug 按钮,即可开始远程连接:

如果网络连接正常,会提示远程连接成功,如下图:

来试试断点的效果吧,打开类 org.elasticsearch.rest.RestController,这是 elasticsearch 处理 web 请求的入口类,在 dispatchRequest 方法中打个断点,位置是调用 tryAllHandlers 方法那一行,如下图红框所示:

向 elasticsearch 发起一次 PUT 请求,创建名为"index101"的索引,url 是"http://192.168.50.75:9200/index101",此时断点会立即生效,如下图,线程调用栈一目了然,是基于 netty 的 server 服务,变量值也应有尽有,对我们阅读源码很有帮助:

至此,IntelliJ IDEA 远程调试 elasticsearch 的实战就完成了,在您学习 elasticsearch 的过程中,希望本文能给您带来一些参考。
建议
除了远程调试,自己修改和编译 elasticsearch 源码也是有效的学习手段,推荐您参考文章《Elasticsearch6.1.2源码下载和编译构建》。
欢迎关注我的公众号:程序员欣宸

最后希望可以帮助到大家!
千千万万要记得:多刷题!!多刷题!!
之前算法是我的硬伤,后面硬啃了好长一段时间才补回来,算法才是程序员的灵魂!!!!
篇幅有限,以下只能截图分享部分的资源!!
(1)多线程(这里以多线程为代表,其实整理了一本 JAVA 核心架构笔记集)

(2)刷的算法题(还有左神的算法笔记)

(3)面经+真题解析+对应的相关笔记(很全面)

(4)视频学习(部分)
ps:当你觉得学不进或者累了的时候,视频是个不错的选择
在这里,最后只一句话:祝大家 offer 拿到手软!!
评论