记一次使用 Arthas 热更新线上代码

本文记录了一次使用Arthas在线热更新代码的经历。起因是线上一个低级错误,通过正常发布流程耗时较长。作者尝试了jad/mc/redefine方案,但在实际项目中遇到反编译不完整的问题。最终采用直接替换.class文件的方式成功更新代码,总结了热更新的步骤,并提醒遵循规范以避免风险。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引用参考第二条 -  Arthas提醒您:诊断千万条,规范第一条,热更不规范,同事两行泪

起因

在一次迭代中,出现了一个低级错误,if 语句中的判断逻辑出现了错误,刚好这个功能场景在开发和测试过程中很少触发,使用的用户也不多,不过的确影响到了少部分用户,所以还是需要进行修复。

想着只是更新一行代码,如果走正常的发布流程,需要通过以下步骤:

提交代码 -> 提测打包 -> 测试环境git验证 -> Release 环境验证 -> 预发环境验证 -> 线上环境

如果你的应用体积不小,而且线上机器很多,花费的时间可能足够喝很多杯 Java :-O


Arthas

之前使用过 Alibaba 开源的诊断工具 Arthas ,下图是官方文档中提到的功能:

640?wx_fmt=png
arthas_summary

不仅可以用来排查问题,还能够使用它 redefine 进行热更新。

刚好之前也看到一篇文章介绍如何进行 一条龙更新,所以就开始了尝试,先从本地开发测试开始。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值