目录
官网
一、Arthas压缩包下载?
1:官网下载
2:百度网盘下载链接:
链接:https://pan.baidu.com/s/1dnYCiQqveMU8Juny3tMmEw
提取码:779q
二、快速入门
1.启动Demo
下载安装包后解压到当前文件夹
启动步骤:
(1). 在当前文件夹打开cmd命令窗口
(2).打开cmd执行以下命令,直接启动 arthas-boot.jar这个jar包
java -jar arthas-boot.jar
(3).执行之后效果如下:中括号数字,[1],可以理解成序号,后面的"17212" 这个是项目进程的PID
(4).在服务器上执行以下命令根据服务端口号获取进程的PID
netstat -ano 端口号
示例: netstat -ano 7160
执行效果如下: 因为 显示错位问题,主要的代码和内容已经用红色框表示出来
2.执行Arthas
(1). 上面的准备工作已经准备好就好以后,下面正式启动Arthas的操作
黄色框内是你想执行的服务端口PID对应的编号[1],
(2)具体执行成功的案例
举例来说,当前服务的端口号是7160 对应的PID 是17212,当执行完:java -jar arthas-boot.jar之后,找到PID的编号,输入编号 1 或者 2 , 因为PID是17212 所以我输入的是 1
具体参考黄色框的输入方式,当出现以下图则显示启动成功
3.Arthas线上热部署操作
(1).找到你需要替换的class文件的路径
示例:C:/Users/Administrator/Desktop/McWomanHealthAntenatalServiceImpl.class
当前class是我需要替换线上服务的class文件
注意:calss文件必须自己准备好
(2).当找到文件后执行以下操作进行热部署
redefine + 准备好的class文件路径
示例如下
单个部署的示例:eg: redefine C:/Users/Administrator/Desktop/McWomanHealthAntenatalServiceImpl.class
也可以多个部署: 示例
redefine C:/Users/Administrator/Desktop/McWomanHealthAntenatalServiceImpl.class
C:/Users/Administrator/Desktop/McWomanHealthBookBuildServiceImpl.class
当出现黄色框中有显示success 说明热部署成功,自行进行校验即可
4.过程中出现的问题
问题描述:
arthas启动报错,找不到tools.jar,C:\Program Files (x86)\Common Files\Oracle\Java\javapath问题
解决方案亲测有效:
删掉C:\Program Files (x86)\Common Files\Oracle\Java\javapath目录下的文件
重启 Arthas 即可
5.总结一下Arthas的热部署
- 查看当前服务端口的PID: netstat -ano 端口号
- 解压的文件夹中打开cmd窗口执行:java -jar arthas-boot.jar
- 根据PID编号选择对应的编号
- 执行 : redefine class 路径
- 返回success,说明部署成功
- 对于多线程和静态类可能存在部署不上的问题,毕竟也是偶发性的,具体的问题我还未遇见