• Alibaba开源的Java诊断工具 -- Arthas


    Arthas 是Alibaba开源的Java诊断工具,方便开发者进行问题的定位和诊断。用户文档:https://arthas.aliyun.com/doc/

    热编译: https://developer.aliyun.com/article/690240 

    可以

    1. 查看方法调用情况
    2. 查看方法入参
    3. 反编译源码
    4. 查看系统的运行状况
    5. 监控到JVM的实时运行状态
    6. 。。。

    安装

    • 方法一,使用arthas-boot(推荐):

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

      方法二,使用as.sh:

    • curl -L https://alibaba.github.io/arthas/install.sh | sh

    idea中安装Alibaba Cloud Toolkit

    安装成功后会有以下图

     其中Upload上传文件,  更多里的Diagnostic诊断代码;

    使用arthas修复线上代码

    替换代码的流程:

    1、jad命令 将需要更改的文件先进行反编译,保存下来 ,编译器修改

    $ jad --source-only com.chitic.supplywater.common.controller.DahuaApiImpl > /tmp/common/DemoApplication.java

    修改完以后需要将类重新加载到JVM

    2、SC命令 查找当前类是哪个classLoader加载的

    $ sc -d com.chitic.supplywater.common.controller.DahuaApiImpl | grep classLoader

    classLoaderHash 20ad9418 #类加载器 编号

    3、MC命令 用指定的classloader重新将类在内存中编译

    $ mc -c 20ad9418 /tmp/common/DemoApplication.java -d /tmp/common 
    Memory compiler output:
    /tmp/common/com/chitic/supplywater/common/controller/DemoApplication.class

    注意:mc编译可能出错,可以在本地编译好然后上传到服务器


    4、redefine命令 将编译后的类加载到JVM

    上边编译后的.class文件地址

    $ redefine -c 20ad9418 /tmp/common/com/chitic/supplywater/common/controller/DemoApplication.class redefine success, size: 1
  • 相关阅读:
    svn服务器
    TCopyDataStruct 各个参数意义
    Com+连不上解决办法
    流的压缩与解压缩
    Config 文件的增删改查
    Assembly 操作
    redhat7 安装oracle11.2.4页面显示不全解决方法
    IEnumerator和IEnumerable详解
    [我的阿里云服务器] —— 安装LAMP
    设计模式之二抽象工厂设计模式
  • 原文地址:https://www.cnblogs.com/gaomanito/p/13753349.html
Copyright © 2020-2023  润新知