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調試不會停止遠程節點)