使用阿里巴巴提供的Arthas工具,实现快速的代码热更新!
目标:使用阿里巴巴提供的Arthas工具,实现java服务不停的情况下,快速修改服务问题并热更新到服务.
工具的下载(Arthas、http服务demo、Arthas文档)
Arthas工具的下载:(小编的百度云盘)
链接:https://pan.baidu.com/s/1qF3z3NXehDFb__sJiqN9Iw
提取码:583c
Arthas文档下载:(小编的百度云盘)
链接:https://pan.baidu.com/s/1NQIQVR4TJ06AoXRBMXhBTw
提取码:9dl7
小编的http服务demo下载:(小编的百度云盘)
注意:这个demo是小编自己用netty写的http服务,具体的可以参考(里面有源码下载):https://www.jianshu.com/p/c21b1e280d19
链接:https://pan.baidu.com/s/1EwvQLEbEocbDTmBTPFu5Sw
提取码:brqk
- 下载的http服务demo下载并解压出来
-
使用cmd 运行demo 端口为:8888
访问http服务
注意:msg:'你好' 我们就是使用Arthas工具,将“你好”修改为"liuyuexinchen" 第二次访问的时候输出的是“liuyuexinchen”
-
解压Arthas并使用cmd运行
-
选定要修改的进程下表
-
浏览器访问
-
查询当前http服务加载的全部类
-
使用 jad 反编译指定的类
-
将指定的类反编译并输出到制定的路径
-
修改msg提示内容为“liuyuexinchen”
-
获取TestGetServer的classLoader的hash数值
-
使用mc 指令 对内存编译
-
使用redefine 进行热更新操作
-
验证热更新是否成功!
♪(^∇^*) ************ 小编验证成功了!!
♪(^∇^*) ***********希望能帮到您!!!!!!!