阿里-Arthas 简单使用-线上热部署更新(Windows)

目录

官网

一、Arthas压缩包下载?

二、快速入门

1.启动Demo

2.执行Arthas

4.过程中出现的问题

问题描述:

解决方案亲测有效:


官网

Arthas官网:Arthas - Alibaba Java Diagnostic Tool Alibaba Java Diagnostic Tool Arthashttps://arthas.aliyun.com/en-us/

一、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的热部署

  1. 查看当前服务端口的PID: netstat -ano 端口号
  2. 解压的文件夹中打开cmd窗口执行:java -jar arthas-boot.jar
  3. 根据PID编号选择对应的编号
  4. 执行 : redefine class 路径  
  5. 返回success,说明部署成功
  6. 对于多线程和静态类可能存在部署不上的问题,毕竟也是偶发性的,具体的问题我还未遇见

常用的命令:Arthas进阶学习(常用命令) - rhyme - 博客园Step1 Step2 Step3 Step4 Step5 Step6 Step7 Arthas 进阶的案例 Step1 下载demo-arthas-spring-boot.jar,再用java -jhttps://www.cnblogs.com/theRhyme/p/10659265.html

猜你喜欢

转载自blog.csdn.net/zf199805/article/details/121868532
今日推荐