arthas进行java应用不停服务情况下的class文件热部署更新
我们在工作的过程中会遇到java应用已经部署或升级投入使用,发现某个单元文件有bug需要修正,但是客户的应用目前不能停止,而且不能因为一个非致命的bug来进行整个平台的一次升级。我们需要进行单文件的更新在不停线的情况下。
下面是具体的操作步骤
一、下载arthas工具 arthas.aliyun.com
二、对需要进行更新的java单元文件进行编译,生成最新的 class。
intelj里的操作:打开编辑的java单元文件,构建|重新编译 .....java,新生成的class文件与原代码文件会在同一目录,将生成好的class文件复制到服务器项目的目录中,或者自己制定一个目录。这个是无关的只要便于管理文件就好。

三、运行arthas进行更新
1、在arthas目录下,cmd 命令启动arthas-boot.jar文件
java -jar arthas-boot.jar
2、系统会列示已经运行的java程序清单,根据需要更新的应用,输入对应的序号回车。

3、输入命令 retransform D:/xxxxx/xxxServiceImpl.class 回车执行覆盖,系统会提示 retransform success, size: 1, classes
4、通过命令 retransform -l 可以显示已经更新的文件清单列表

arthas进行java应用不停服务情况下的class文件热部署更新的更多相关文章
- 不停服务情况下升级nginx
第三方支付平台因安全问题对nginx做了升级操作,为了不影响业务,整个操作过程都不能停服务,因此对升级方法做出了要求.以下为我整理的生产环境实际操作方法,已在第三方支付平台上成功应用,希望对即将或者可 ...
- java获取ubuntu某个目录下的所有文件信息
java获取ubuntu某个目录下的所有文件信息 public List<VCFile> getAllFiles(String basicDirName) { List<VCFile ...
- java基础十[包、Jar存档文件和部署](阅读Head First Java记录)
将Java的class文件生成为可执行的Java应用程序.Java应用程序有三种:完全在本机执行的Jar(例如本机的GUI可执行程序):完全在服务器端远程执行的(例如浏览器来进行存取):介于两者之间的 ...
- java:多层文件夹情况下,判断文件夹下是否有文件夹,并获取到没有文件夹的名字的方法
业务问题案例 在公司遇到的一个问题,本以为很小很好解决,没想到花了一下午时间.图给的是文件路径,page1下有10个文件夹,每个有的有文件夹或者文件,要求得到page1下(即:123456789,10 ...
- CI Weekly #11 | 微服务场景下的自动化测试与持续部署
又一周过去了,最近我们的工程师正在搞一个"大事情" --「[flow.ci](http://flow.ci/?utm_source=bokeyuan&utm_medium= ...
- Java 递归获取一个路径下的所有文件,文件夹名称
package com.readfile; import java.io.File; public class GetAllFiles { public static void main(String ...
- java 如何读取src根目录下的属性文件
在java项目中,如何获取src根目录下的属性文件/资源文件呢? 有如下三种方式: 方式一: InputStream in = Test.class .getResourceAsStream(&quo ...
- java 递归获取一个目录下的所有文件路径
还是日志的问题,log4j生成的日志文件,自动保存到月份所在的文件夹中,需要获取到所有的日志文件,包括文件夹 private List<String> ergodic(File file, ...
- Spark:java api读取hdfs目录下多个文件
需求: 由于一个大文件,在spark中加载性能比较差.于是把一个大文件拆分为多个小文件后上传到hdfs,然而在spark2.2下如何加载某个目录下多个文件呢? public class SparkJo ...
- python在不同情况下写入csv文件
情况一(解法一):将列表存储为csv文件.列表的每一项代表csv文件的一行. 列表中的每一项包含多个属性.list=[[属性1,属性2,属性3,……],[属性1,属性2,属性3,……],[属性1,属性 ...
随机推荐
- 20241120 校内模拟赛 T3 题解
题目描述 给定一个数列 \(A\),数列的元素取值范围为 \([1,m]\). 请计算有多少个非空子区间满足以下条件:该区间内每个元素的出现次数都相同(没有出现的元素视为出现 \(0\) 次). 例如 ...
- Chrome 浏览器 131 版本新特性
Chrome 浏览器 131 版本新特性 一.Chrome 浏览器 131 版本新特性 1. 在 iOS 上使用 Google Lens 搜索 自 Chrome 126 版本以来,用户可以通过 Goo ...
- CommonsCollections6(基于ysoserial)
环境准备 JDK1.8(8u421)我以本地的JDK8版本为准.commons-collections(3.x 4.x均可这里使用3.2版本) cc3.2: <dependency> &l ...
- VS中使用Qt方法详解
相信大家都知道在 Qt Creator 中可以使用 MSVC 编译工具对 Qt 项目进行编译.若有人比较习惯于使用 Visual Studio,或某些项目必须使用 Visual Studio,也可以在 ...
- Linux中更新系统时间、同步系统时间和硬件时间
更新系统的时间 1.手动修改 date -s # 不建议 2.时间同步服务器 ntpdate # 需要安装命令 yum -y install ntpdate [root@oldbo ...
- Apache Tomcat AJP 实现负载均衡
大部分一开始接触WEB服务器的人可能和我一样对为什么有Apache又有Tomcat服务器感到奇怪(它们还都是Apache开发的呵呵),其实他们不是冗余的服务器,虽然他们都能对外提供WEB服务器,但总的 ...
- clickhouse之python操作
官网:https://clickhouse-driver.readthedocs.io/en/latest/ 使用python来对clickhouse进行操作 安装) pip install clic ...
- Python3 print不输出回车符
Python3 print的函数原型: print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False) objects ---- 输出 ...
- 从Delphi到Lazarus——安装最新版的Lazarus
0.前言 在这篇文章里将会介绍以下内容: 下载最新版的Lazarus安装程序 安装Lazarus 安装整合IDE界面的软件包 编译运行你的第一个测试程序 结束语 1.下载最新版的Lazarus安装程序 ...
- C#调用Python脚本的方式(一),以PaddleOCR-GUI为例
前言 每种语言都有每种语言的优势,Python由于其强大的生态,很多任务通过调用包就可以实现,那么学会从C#项目中调用Python脚本完成任务就很重要.C#调用Python代码有多种方式,如果Pyth ...