需要下载的文件:
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,如下图所示,则部署成功