需要下載的文件:
1、arthas-x.x.x-bin,這個包含監控的插件,可作為遠程監控的客戶端,下載地址:https://arthas.aliyun.com/doc/download.html
2、arthas-tunnel-server-x.x.x-fatjar.jar,這個是遠程監控的服務端,下載地址:https://github.com/alibaba/arthas/releases
Arthas遠程監控JVM的方法如下:
1、第一步先啟動遠程服務端,也就是在你自己的電腦上啟動服務端arthas-tunnel-server的jar包,啟動后記下地址給客戶端也就是要監控的電腦啟動arthas用,一般默認為,ws://xxx.xxx.x.xxx/ws,這個ip是自己電腦的ip。
2、第二步把下載好的arthas-x.x.x-bin文件夾拷貝到要監控的服務器上,然后輸入啟動命令並帶上第1條保存下來的tunnel服務地址,java -jar arthas-boot.jar --tunnel-server ws://xxx.xxx.x.xxx/ws --agent-id xxxxxxx,agent-id為自定義的id,作為注冊到tunnel服務器上的唯一id
注意事項:jad——》mc——》redefine,線上更新組合指令使用步驟如下:
1、先使用sc命令模糊查找出了問題的類所在的包,sc com.example.demo.service.*
2、通過第1步驟找到具體的類后,在使用sm命令查找類下的所有方法,sm com.example.demo.service.HourService.* -d,並記下該類的加載器的hash值
3、使用jad反編譯有問題的類,並保存到指定的文件夾里,命令里指定保存到root文件夾下,jad com.example.demo.service.HourService --source-only > /root/HourService.java
4、進入並修改反編譯后的文件后保存,使用mc命令編譯成字節碼class文件,在這里需注意,命令行里要指定第2條保存的類加載器的hash值,否則編譯報錯,mc -c 1d56ce6a /root/HourService.java -d /root ,編譯后的class文件會生成到包下的路徑,如下圖:
5、開始使用redefine執行熱部署命令,redefine /root/com/zxyt/service/HourService.class,如下圖所示,則部署成功