Elasticsearch源码远程与本地调试
java版本-1.8
elasticsearch版本-6.1.2
gradle版本-4.6
备注:调试前请先在自己IDEA中导入与部署节点版本相同的elasticsearch源码;另外下文中提到的IDEA快捷键都是在WIN10系统下操作。
一、源码本地调试
1、BEBUG配置
// VM options:
-Des.path.home=C:\Users\11416\Desktop\project\elasticsearch\elasticsearch-6.1.2\eshome
-Des.path.conf=C:\Users\11416\Desktop\project\elasticsearch\elasticsearch-6.1.2\eshome\config
-Xms1g
-Xmx1g
-Dlog4j2.disable.jmx=true
-Djava.security.policy=C:\Users\11416\Desktop\project\elasticsearch\elasticsearch-6.1.2\eshome\config\elasticsearch.policy
// elasticsearch.policy文件内容:
grant{
permission javax.management.MBeanTruxtPermission "register";
permission javax.management.MBeanServerPermission "createMBeanServer";
permission javax.lang.RuntimePermission "createClassLoader";
};
eshome配置的内容-从对应版本的官方二进制包中复制:
2、启动调试
3、使用postman调用接口进行功能源码调试
http://127.0.0.1:9200/test-index/graph/_bulk
{"index":{"_id":"123"}{}}
{"id":123,"test":"test"}
IDEA CONSOLE打印的日志:
源码DEBUG(继续DEBUG流程(使用postman调用接口访问集群,在对应功能处设置断点):
二、源码远程调试
1、BEBUG配置
// jvm.options(修改远程节点的配置文件重启节点)
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
2、启动调试
// 单击DEBUG启动调试(远程调试,停止调试不会终止远程节点)
// CONSOLE OUTPUT:
Connected to the target VM, address: 'localhost:5005', transport: 'socket'
3、使用postman调用接口进行功能源码调试
4、设置代码书签
选中当前代码行,按F11设置代码书签。按SHIFT+F11打开代码书签并且为书签添加备注。(书签的功能类似我们平常使用的书签的概念,起到备忘录的作用)
5、设置断点组
CTRL+SHIFT+F8打开断点组设置。
6、继续DEBUG流程
使用postman调用接口访问集群,在对应功能处设置断点。(远程DEBUG调试不会停止远程节点)