Arthas基本使用

基本使用

1:删除本地已有的arthas-demo docker container(非必要)

docker stop arthas-demo || true && docker rm arthas-demo || true

2.进入docker所在宿主机。

docker exec -it mynewclass /bin/bash

3.下载arthas

wget https://alibaba.github.io/arthas/arthas-boot.jar

4.启动arthas

//通过java -jar启动arthas-
java -jar arthas-boot.jar --target-ip 0.0.0.0

5.会弹出发现java进程
请添加图片描述
选择1,回车
请添加图片描述
为了避免重复,可以使用直接在dockerfile文件中加入(二选一)
1.dockerfile文件中加入COPY --from=hengyunabc/arthas:latest /opt/arthas
2.通过镜像启动项目

进入容器命令:docker exec -it fb95d0bf4dd5(容器id) /bin/sh -c "java -jar /opt/arthas/arthas-boot.jar"
备注:hengyunabc/arthas是一个docker下载的开源项目,arthas的启动jar

Arthas 热更新线上代码

在基本使用的基础上在进行操作
1.反编译代码 >后面编译后容器的地址(可自己修改)

jad --source-only com.txhn.web.controller.BannerController > /tmp/BannerController.java

2.修改反编译后的代码

vim BannerController.java

备注:要从新打开一个会话,进入你项目的容器内,如图
请添加图片描述
3.查找加载的 ClassLoader

sc -d *BannerController |grep classLoadHash

成功如图:
请添加图片描述
4.编译,会产生一个.class文件

mc -c 49c2faae /tmp/BannerController.java -d /tmp

备注:(坑点)直接在controller使用mybatisplus语法传一个对象,在反编译过后会自动增加类型
示例:
请添加图片描述
解决办法: 自行删除…。
成功如图:
请添加图片描述
5.热更新代码

redefine /tmp/com/txhn/web/controller/BannerController.class

成功如图:
请添加图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值