非常簡單的查看 ES 源碼的方法。注意,該方法只能查看源碼,不能修改源碼。
1. Mac ElasticSearch 安裝
brew install ElasticSearch
我的ES安裝地址:/usr/local/Cellar/elasticsearch/6.8.5
2. 修改jvm 參數
修改 /usr/local/Cellar/elasticsearch/6.8.5/libexec/config/jvm.options 中 jvm 參數,增加以下內容:
-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005
這個5005就是監聽端口。
3. 啓動 ElasticSearch
./bin/elasticsearch
啓動日誌中看到: Listening for transport dt_socket at address: 5005
訪問:http://127.0.0.1:9200/_cat/health,顯示 ES 健康信息。
4. 工程中引入 ElasticSearch 源代碼
我用的 gradle,注意版本要與安裝的 ES 版本一致
compile group: 'org.elasticsearch', name: 'elasticsearch', version: '6.8.5'
compile group: 'org.elasticsearch.client', name: 'transport', version: '6.8.5'
compile group: 'org.elasticsearch.plugin', name: 'transport-netty4-client', version: '6.8.5'
5. Idea 中配置 remote
Eidt Application Configuration,增加 remote,如圖
6. debug
debug Application,在 ElasticSearch 代碼中設置斷點,跟蹤。
例如訪問 http://127.0.0.1:9200/_cat/health, 入口 RestHealthAction.java
訪問 _search 端口,入口 RestSearchAction.java