一 Arthas简介
1.1 Arthas是阿里巴巴开源的Java程序诊断工具。
https://alibaba.github.io/arthas/install-detail.html
快速安装与启动
wget https://alibaba.github.io/arthas/arthas-boot.jar
java -jar arthas-boot.jar
二 代码热部署
2.1 1分钟教程
- 遇到线上问题无法debug,只能加log重新发布吗?
- 线上代码为什么没有执行到这里,是没有commit还是分支搞错了?
- 线上某个用户的数据有问题,测试环境无法复现,怎么办?
Arthas三个命令搞定:
jad --source-only com.example.demo.arthas.user.UserController > /tmp/UserController.java
mc /tmp/UserController.java -d /tmp
redefine /tmp/com/example/demo/arthas/user/UserController.class
//jad命令反编译,然后可以用其它编译器,比如vim来修改源码
//mc命令来内存编译修改过的代码
//用redefine命令加载新的字节码
2.2 上传.class文件到服务器的技巧
mc编译class文件可能失败
可以在本地修改,编译好在上传到服务器。
有的服务器不允许上传文件,可以通过base64来绕过。
1.在本地