Arthas反编译与重新加载class

news2024/11/17 12:13:38

一、背景

        因为其他研发部门同事给的产品jar包存在一个问题,就是http底层的超时时间默认为60s,但是最近调用外部接口同步数据,这个数据量太大导致超时超过60s,每次同步都不成功。但是客户目前对此情况特别不满意,需要紧急处理。

        其实很简单的逻辑就是,将超时时间60s先延长,后续再优化产品。奈何研发这个产品的同事又被其他项目拖住了,腾不出时间来解决。因为源码在他那边,我们也无法修改进行编译。

        最后和他远程看了下锁定是哪个类,在哪个类修改即可。 无奈,我们为了紧急解决用户的问题,想到了使用Arthas对哪个class类进行反编译,最后热加载这个class即可完成替换。

二、Arhas的操作过程

1、arthas连接attach进程

java -jar arthas-boot.jar

选择对应的进程id输入,回车,进入arthas dashbord界面

2、jad反编译生成java源码文件

jad --source-only com.demo.HttpClientConfig > /data/HttpClientConfig.java

将这个类com.demo.HttpClientConfig反编译生成java源代码文件, 对代码修改超时时间

3、mc重新编译这个class

mc /data/HttpClientConfig.java -d /data/tmp/arthas/

重新编译/data/HttpClientConfig.java生成到/data/tmp/arthas/目录下

4、备份jar包的旧class,替换新的class

解压jar包:

jar xf $file.jar

备份jar包的旧class,替换新的class,重新打包:

jar cf $file.jar -C ./ . 

5、寻找割接窗口,将此机器流量切走,重启,观察

申请割接窗口,先从LB将流量切走,安全的重启、观察程序是否正常, 滚动更新,最后观察,程序可以正常同步,不会因为60s超时导致同步失败

三、可视化查看Java反编译工具(JD-GUI)

项目地址: https://java-decompiler.github.io/

针对Java项目可以使用JD-GUI针对jar包进行反编译, 可以具备一些参考功能。

四、总结

        Artahs除了可以做这些trace、watch, 其实jad、mc这些命令也是很强大的。 这某些特殊情况下可以使用反编译、重新编译来解决特殊情况.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1692605.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

将电脑D盘部分空间划分给C盘的方法

本文介绍在Windows电脑中,将D盘的部分空间分给C盘的方法。 最近,发现电脑中C盘的空间剩余不多了;而D盘由于当初分盘时划分的空间过多,导致其剩余空间很大且大概率以后都不会用上D盘中这些多余的空间了。因此,希望将D盘…

使用Word表格数据快速创建图表

实例需求:Word的表格如下所示,标题行有合并单元格。 现在需要根据上述表格数据,在Word中创建如下柱图。如果数据在Excel之中,那么创建这个图并不复杂,但是Word中就没用那么简单了,虽然Word中可以插入图表&a…

轻松拿捏C语言——【字符串函数】的使用及模拟实现

🥰欢迎关注 轻松拿捏C语言系列,来和 小哇 一起进步!✊ 🎉创作不易,请多多支持🎉 🌈感谢大家的阅读、点赞、收藏和关注💕 🌹如有问题,欢迎指正 感谢 目录 一、…

向npm发布自己写的vue组件,使用vite创建项目

向npm发布自己写的vue组件,使用vite创建项目 创建项目 pnpm create vite输入项目名称 由于我的组件是基于 ant-design-vue和vue的,需要解析.vue文件,我又安装了下面4个。 然后执行 pnpm i安装依赖 vite.config.ts import { defineC…

ES基础概念

本文不介绍如何使用ES(使用ES见:) 1.ES生态圈 ES: Logstash:数据处理服务程序,解析转换加工数据; Kibana:数据展示、集群管理,数据可视化、ES管理与监控、报表等&#xf…

【QT+VS】如何在现有VS项目中添加Qt界面?【全网最详细】

0. 前置步骤 参考如下链接文章中的 前3个步骤(1:下载Qt;2:安装Qt;3:安装Qt插件),完成环境的配置和安装。 深耕AI:如何联合Qt,VS,C++,来开发一个电脑版软件(简单有趣,详细) 本文的基础项目链接为: c++工程+图像分割预测+mmdet+实例分割+最新工程+简洁易懂+新手…

方正畅享全媒体新闻采编系统 binary.do SQL注入漏洞复现

0x01 产品简介 方正畅享全媒体新闻生产系统是以内容资产为核心的智能化融合媒体业务平台,融合了报、网、端、微、自媒体分发平台等全渠道内容。该平台由协调指挥调度、数据资源聚合、融合生产、全渠道发布、智能传播分析、融合考核等多个平台组成,贯穿新闻生产策、采、编、发…

Mysql 备份恢复 mysqldump与xtrabackup备份

1.1 备份的原因 备份是数据安全的最后一道防线,对于任何数据丢失的场景,备份虽然不一定能恢复百分之百的数据 (取决于备份周期),但至少能将损失降到最低。衡量备份恢复有两个重要的指标:恢复点目标(RPO) 和恢复时间目标(RTO)&…

1.freertos基础知识

1.freertos最核心的概念就是多线程,就是可以让两段代码同时进行。 2.针对不同的用户场景,freertos提供了4种交互方式:消息队列,任务通知,信号量,互斥锁 3.什么是API?API是应用程序编程接口&…

【退役之重学Java】关于B+树索引

一、为什么使用索引 一条数据可能有很多字段,数据量比较大,挨个查询效率极差故使用索引,提高查询性能和加快数据检索速度。同时还可以帮助优化排序、分组和连接操作,提高数据库系统的整体性能和响应速度。 二、为什么要用 B 树 B树…

HarmonyOS 鸿蒙应用开发 - 创建自定义组件

开发者定义的称为自定义组件。在进行 UI 界面开发时,通常不是简单的将系统组件进行组合使用,而是需要考虑代码可复用性、业务逻辑与UI分离,后续版本演进等因素。因此,将UI和部分业务逻辑封装成自定义组件是不可或缺的能力。 1、创…

Stable Diffusion简单食用方法

1.下载 1.1打开B站 哔哩哔哩 (゜-゜)つロ 干杯~-bilibili哔哩哔哩(bilibili.com)是国内知名的视频弹幕网站,这里有及时的动漫新番,活跃的ACG氛围,有创意的Up主。大家可以在这里找到许多欢乐。https://www.bilibili.com/ 1.2搜索…

【CSS】input宽度根据内容自适应

目标:纯css实现以下功能 input 设置width:min-content | max-content;//无效 ∵ 文本输入框通常会被浏览器渲染为具有固定宽度的控件。 解决方法:设置input的宽高都为100%,让它随着父元素的宽高改变。 父元素如何改变呢&#xf…

可视化在医疗健康领域的巨大价值,该如何设计呢。

可视化设计在医疗健康领域具有以下价值: 数据展示与分析:可视化设计可以将医疗健康领域的大量数据以图表、图形等形式进行展示和分析,帮助医生、研究人员和决策者更直观地理解和解读数据,发现规律和趋势,从而做出科学决…

HTTP 错误 404.3 - Not Found 问题处理

问题描述 HTTP 错误 404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。 解决对策

MATLAB构建一些简单的人工数据集

1. 构建一个2维3类的数据集 %高斯二维三类 1 3 mul[0,0]; % 均值 S1[.1 0;0 .1]; % 协方差 data1mvnrnd(mul, S1, 100); % 产生高斯分布数据 % 第二组数据 mu2[1.25 1.25]; S2[.1 0;0 .1]; data2mvnrnd(mu2,S2,100); % % 第三组数据 mu3[-1.25;1.25] S3[.1 0;0 .1] data3mvn…

企业级架构及本体论最新进展

本文主要探讨了企业级架构和本体论的新兴趋势,特别是DoDAF、IDEAS、UAF和NAF的发展历程、理论基础、模型构建以及与ArchiMate和语义网技术的关联。原文: The emerging landscape of Enterprise Architecture and Ontology 导言 动机和采用的方法 关注我的人都知道我…

ROCm上运行预训练BERT

14.10. 预训练BERT — 动手学深度学习 2.0.0 documentation (d2l.ai) 下载数据集 在d2l-zh/pytorch/data目录解压: ~/d2l-zh/pytorch/data$ unzip wikitext-2-v1.zip Archive: wikitext-2-v1.zipcreating: wikitext-2/inflating: wikitext-2/wiki.test.tokens …

Autodesk 3DS Max v2025 解锁版安装教程 (3D 建模软件)

前言 Autodesk 3ds Max 是一款功能强大的 3D 建模和动画解决方案,游戏开发人员、视觉效果艺术家和平面设计师使用它来创建庞大的世界、令人惊叹的场景和引人入胜的虚拟现实 (VR) 体验。 Autodesk 3DS MAX是业界使用最广泛的3D建模和动画软件程序之一,它…

MoE 系列论文解读:Gshard、FastMoE、Tutel、MegaBlocks 等

节前,我们组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。 针对大模型技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备面试攻略、面试常考点等热门话题进行了深入的讨论。 总结链接…