arthas现实了不停机、不发包替换了生产环境的Java代码

Arthas实现代码热更新 一、背景 有时我们在项目中正在运行的线上代码出了问题,由于是线上项目无法重启或更新代码,此时只能选择热更新的方式进行,但是热更新有风险,操作需谨慎。 这里:默认大家已经会使用arthas或者arthas已经安装完成,如果没有安装请点击:Arthas-java在线调试工具的使用 二、步骤 测试代码: package com.tiandy.testdemo; @SpringBootApplication public class TestDemoApplication { public static 阅读详情

arthas现实了不停机、不发包替换了生产环境的Java代码

线上代码热更新(动态修改上线项目代码)

手动在代码中抛异常,不停机不重新发包的情况下,修改线上代码
在这里插入图片描述
启动服务也达到我们预期异常
在这里插入图片描述

替换代码的流程:

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

$ jad --source--only com.example.demo.DemoApplication > /data/DemoApplication.java
  • 1

在这里插入图片描述

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

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

$ sc -d *DemoApplication | grep classLoader

 classLoaderHash   20ad9418 #类加载器  编号     

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

$ mc -c 20ad9418 /data/DemoApplication.java -d /data 
Memory compiler output:
/data/com/example/demo/DemoApplication.class

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

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

$ redefine /data/com/example/demo/DemoApplication.class  
redefine success, size: 1
  • 1
  • 2

文件替换后我们再次访问一下程序,发现异常没有了程序已经是我们修改正确后的,class文件替换成功

这样我们就用arthas现实了不停机、不发包替换了生产环境的Java代码,功能确实比较强大,本文只揭开了arthas强大功能的冰山一角,后续将出更详细的文章,方便大家一起学习
在这里插入图片描述

 

【arthas系】java语言项目如何不停机替换生产某一个class类 先简单介绍下文章中使用是springboot项目,采用的工具是arthas关于arthas的命令、以及官网地址这里贴以下出来这里先说明下,arthas有在线反编译class文件()->修改源文件->重新编译() 这样的流程来修改文件。这里在网上找到一篇对应这个流程的但是基本上重新编译这个操作很少成功。所以我这边直接选择使用完成的。 阅读详情

相关推荐

ios 动态更新 热更新

可以实现动态更新,无需发布app版本实现增加内嵌功能

Arthas实现热更新代码

Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。

雪落夜的专栏 2213

语音测试(二)音频标注(praat)

通过点击红线下方的圆点进行区域划分,在区域中标注所属的类别。按住Alt+Backspace 键取消蓝色线条。

beishida123的博客 3740

[Java]线上监控诊断工具Arathas,入门使用

通常,本地开发环境无法访问生产环境。 如果在生产环境中遇到问题,则无法使用 IDE 远程调试。更糟糕的是,在生产环境中调试是不可接受的,因为它会暂停所有线程,导致服务暂停。 开发人员可以尝试在测试环境或者预发环境中复现生产环境中的问题。但是,某些问题无法在不同的环境中轻松复现,甚至在重新启动后就消失了。 Arthas 旨在解决这些问题。开发人员可以在线解决生产问题。无需 JVM 重启,无需代码更改。 Arthas 作为观察者永远不会暂停正在运行的线程。

码鹿的记录 760

成本会计(第九版)王忠孝课后习题答案解析

在掌握了基础知识之后,我们还需要培养自己的实际操作能力。此外,在学习过程中,遇到困难时,要及时向老师、同学请教,不要害怕暴露自己的不足。三人行,必有我师,每个人都有值得学习的地方。首先,我们需要认真阅读教材,把基础知识掌握牢固。在这里,我建议大家使用《成本会计(第九版)》的配套练习册,这样可以帮助我们检查学习效果。同时,网上的一些优质课程和论坛也是不错的学习资源,例如网易云课堂、中国大学MOOC等。别担心,这里我给大家推荐一些实用的学习资料和方法,帮助你更好地掌握这门课程。出版社: 大连理工大学出版社。

weixin_58833001的博客 1889

从零到一:手把手教你用DaVinci Configurator配置一个完整的AUTOSAR接口通信实例

本文详细介绍了如何使用DaVinci Configurator工具配置AUTOSAR接口通信实例,从环境准备到SWC端口定义、BSW模块配置,再到通信验证的全过程。通过实战案例'车窗控制'功能模块,帮助开发者快速掌握AUTOSAR架构下的接口通信配置技巧,提升汽车电子软件开发效率。

weixin_42557830的博客 451

阿里arthas(阿尔萨斯)的linux安装和使用

快速安装arthas curl -O https://alibaba.github.io/arthas/arthas-boot.jar 启动并监控一个java进程,在此之前先启动一个java程序,使用ps -aux|grep java查看要监控的java程序的pid ps -aux|grep java arthas监控java进程 java -jar arthas-boot.jar <pid> 常用命令 dashboard jad jad命令用来反编译某一个.

SDJN_ONE的博客 2973

从手机到单片机:聊聊ARM Cortex家族那些事,A、R、M系列到底有啥不同?

本文深入解析ARM Cortex家族的A、R、M三大系列处理器,揭示它们在性能、实时响应和能效方面的核心差异。从智能手机到汽车电子和物联网设备,Cortex-A、R、M各司其职,分别应对复杂运算、实时控制和超低功耗场景。通过技术指标对比和典型应用案例,帮助开发者理解如何根据DMIPS/MHz等关键参数选择适合的处理器架构。

weixin_31574149的博客 351

arthas代码热更新 | java 生产环境代码热更新 | 纯干货

很多时候java代码不能在线调试或者关键地方没有打log导致无法查bug,遇到这种情况可以借助arthas工具来实现java代码热更新且不用重启服务。具体热更新步骤如下。

weixin_38989540的博客 2427

通达信强龙趋势幅图指标 - 精准捕捉趋势,把握强势行情,多角度分析个股,强弱一目了然

STICKLINE(趋势>0 AND SJTJ,4.8,5.8,1.5,0),COLORYELLOW;STICKLINE(资金>0 AND SJTJ,1.2,2.2,1.5,0),COLOR0080FF;STICKLINE(异动>0 AND SJTJ,0,1,1.5,0),COLORFF0080;STICKLINE(异动=0 AND SJTJ,0,1,1.5,1),COLORGRAY;

Q1809330692的博客 5643

2026年职业院校技能大赛中职移动应用与开发—数字生活APP原型设计参考答案(含素材)

本模块以产品原型为目标,考查参赛选手熟练收集、分析和归纳客户需求,清晰梳理业务流程,熟练使用UI设计软件进行产品UI/UE设计,掌握正确的UI配色方案,设计出符合业务逻辑的人体工学移动App 原型优秀作品。

我是网络安全兼技能大赛工程师,专注网络安全技术学习与技能大赛实战!持续分享最新的技术文章,帮你少走弯路,一起在技术赛道上进步~ 572

不停机替换线上代码? 你没听错,Arthas它能做到

有没有这样一种感受,自己写的代码在开发、测试环境跑的稳得一笔,可一到线上就抽风,不是缺这个就是少那个反正就是一顿报错,线上调试代码又很麻烦,让人头疼得很。阿里巴巴出了一款名叫`Arthas`的工具,可以在线分析诊断Java代码,着实让人眼前一亮。

程序员内点事 5724

开源模型应用落地-qwen模型小试-Qwen3-8B-快速体验(一)

阿里云推出国内首个集成“快思考”与“慢思考”能力的 Qwen3-8B 大语言模型,以80亿参数和 128K 上下文支持,重塑AI应用边界并助力开发者高效部署

以微薄之力,予他人些许温暖. 2万+

使用Arthas实现不停机更新

这里写自定义目录标题背景下载安装查询需要替换的文件的类加载器加载指定的class文件注意 背景 生产服务器的缺陷往往需要进行紧急更新,即使是多节点部署也避免不了需要重新启动服务器,使新的逻辑代码更新,所以不停机更新文件显得至关重要,今天介绍一下使用阿里的arthas实现不停机更新文件。 大致思路:我们都知道class文件的加载都是依附于类加载器的,所以我们要做的就是让原本的类加载器重新去加载类文件,这样就可以实现不重启服务器更新应用。而arthas做的就是面向jvm,拿到指定的累加器和待更新的class编译

shenzhou_yh的博客 793

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

arthas线上不停机修改bug

将 OrderServiceCompleteVerifyBo.java下载下来后修改错误的地方(我这里是指删了一个NotNull的一个注解)查询日志告知是 : Arthas 在尝试附加到目标 Java 进程(PID 为。用指定的classloader类加载器的hash码重新将类在内存中编译。将需要更改的文件先进行反编译,保存下来 ,编译器修改放到tmp目录下。将修改后的文件放到tmp/zss/ 目录下,下面是上边编译后的.class文件地址。的绝对路径来运行命令,避免依赖。使用进程id启动,报错。

不爱敲代码的码农 1194

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Arthas不停机热修改代码

正常来说只需要简单四步就能进行热更新 一、使用 jad 反编译出 .java 文件 二、编辑文件,修改逻辑 三、使用 mc 编译修改后的文件 四、使用 redefine 热更新 当然,如果像我这样遇到编译.class失败的场景,可以参考我的步骤,直接拿到修改后的 .class 文件,然后继续进行操作。

qq_41419769的博客 4377

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Arthas不停机替换线上代码

解决问题:生产环境出现bug,但是又不方便重新发版启动,可以使用Arthas将线上的代码反编译出来,然后进行修改,修改之后再通过类加载器将类重新进行编译,最后加载到JVM中。安装Artha...

weixin_46007214的博客 1247

不停机还能替换代码?6年的 Java程序员表示不可思议

相信很多人都有这样一种感受,自己写的代码在开发、测试环境跑的稳得一笔,可一到线上就抽风,不是缺这个就是少那个反正就是一顿报错,而线上调试代码又很麻烦,让人头疼得很。不过, 阿里巴巴出了一款名叫Arthas的工具,可以在线分析诊断Java代码,让人眼前一亮。❞Arthas 是什么?Arthas(阿尔萨斯) 是阿里开源的一个Java在线分析诊断工具。Arthas 能解决啥问题?在日常开发上线过程中,我...

十指波课堂的博客 466

阿里Arthas(阿尔赛斯)不停机替换class进行热部署

1.启动待测试的应用程序 [doda@host166 game]$ java -jar math-game.jar 2.替换操作步骤 2.1启动Arthas [doda@host166 arthas]$ java -jar arthas-boot.jar [INFO] arthas-boot version: 3.6.1 [INFO] Found existing java process, please choose one and input the serial number of the..

SimpleSimpleSimples的博客 1681

Arthas

查看内存、磁盘等功能在健康检查中已经存在,无需使用Arthas Arthas主要提供不停机换类功能 定时任务需要集成,定时任务集群时,不同节点处理的任务不一致,突然停机可能会造成脏数据。 使用Arthas 换类功能需在服务器端部署Arthas 将arthas服务部署到生产环境,然后启动,启动时需要制定ip为(0.0.0.0)否则pc无法进行长连接,然后选择要监控的进程(pc端使用浏览器连接无法选择进程,只能查看linux环境选择好的进程)。 1 将arthas服务部署到生产环境 启动,启动时需要制定ip为(

dyn的博客 293

替换jar包_替换代码的情况下不停机!这操作可能工作6年的Java程序员都不会

相信很多人都有这样一种感受,自己写的代码在开发、测试环境跑的稳得一笔,可一到线上就抽风,不是缺这个就是少那个反正就是一顿报错,而线上调试代码又很麻烦,让人头疼得很。不过, 阿里巴巴出了一款名叫Arthas的工具,可以在线分析诊断Java代码,让人眼前一亮。❞Arthas 是什么?Arthas(阿尔萨斯) 是阿里开源的一个Java在线分析诊断工具。Arthas 能解决啥问题?在日常开发上线过程中,我...

weixin_39827850的博客 1067

java线上bug热更新修复技术_线上热更新代码只需3步 Arthas实战

当我们发现线上出现bug,如何进行不停机热更新代码?1、问题背景当我们发现线上出现bug,在排查时可能不是很好确认问题,并且最好保留现场,才能重现问题,或者需要快速修复bug,才能比较快速或者方便的临时解决紧急问题。这时,热更新就能很好的帮助我们了。虽然可以通过发版进行解决生产问题,但是项目频繁发版会存在一定的风险:比如用户正在使用对应功能,会影响用户的使用体验。紧急版本上线可能还需要领导的特别审...

weixin_35448535的博客 1043

替换jar包_不停机还能替换代码?6年的 Java程序员表示不可思议

点击“程序员内点事”关注,选择“设置星标”坚持学习,好文每日送达!❝相信很多人都有这样一种感受,自己写的代码在开发、测试环境跑的稳得一笔,可一到线上就抽风,不是缺这个就是少那个反正就是一顿报错,而线上调试代码又很麻烦,让人头疼得很。不过, 阿里巴巴出了一款名叫Arthas的工具,可以在线分析诊断Java代码,让人眼前一亮。❞Arthas 是什么?Arthas(阿尔萨斯) 是阿里开...

weixin_31958413的博客 745

arthas热交换类--线上补丁方法

使用arthas进行类的热交换

阿丹的博客 634
上一篇: Arthas - Java 线上问题定位处理的终极利器
下一篇: Flink状态管理和容错机制介绍
王树民
博客等级 码龄10年 912粉丝 560原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值