Arthas使用案例(二)

说明:记录一次使用Arthas排查测试环境正在运行的项目BUG;

场景

有一个定时任务,该定时任务是定时去拉取某FTP服务器上的文件,进行备份、读取、解析等一系列操作。

而现在,因为开发环境是Windows, 线上项目是LInux,两个操作系统的路径分隔符不同,Windows是反斜杠(\),Liunx是斜杠(/),而我如果在本地起项目进行排查,就需要去更换代码中的相关路径,等于是用Windows系统下的代码,去操作LInux上的文件(FTP服务器是在Linux环境里的),相当麻烦。

于是我考虑用Arthas来进行排查。

排查

首先,通过分析日志,我知道代码保存的地方就在下面try代码块里,因为日志中有打印异常信息;

在这里插入图片描述

这部分代码进行了两部分的文件操作,而从结果来看,是后面这部分的FTP操作造成了异常,于是我在这段代码中间,加入了一段日志,如下:

在这里插入图片描述

然后,将这部分的代码在本地进行编译,找到对应的.class文件(本地起项目,然后在target目录里找到对应类的class文件),上传到服务器。进入Arthas界面,使用redefine命令,后面跟上class文件在服务器上的路径,热更新代码;

在这里插入图片描述

此时,再触发一下定时任务,查看日志信息,出现了新增的这部分日志,打印了ftp文件路径,如下:

在这里插入图片描述

将打印出来的路径与实际的路径一比较,发现就是路径错误,最后一个文件夹名对不上,淦!幸运的是,这个路径是写在数据库里面的,所以修改数据库中的路径或者修改实际FTP服务器上的文件夹名使其能对应上,两种方法都可以。

最后

本文图片打码较多,有些细节图片也没能截出来,大家仅供参考。文章主要是传递一个观点,如果你只想给项目加一行日志信息,千万不要去写代码 => commit and push => merge => package => 构建,用Arthas的redefine命令热更新代码,非常方便,值得选择

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024批量导出公众号所有文章生成目录,这下方便找文章了

公众号历史文章太多,手机上翻起来太费劲,怎么快速找到某一天的文章呢?比如深圳卫健委这个号从2014到2024发布近万篇文章。 公众号历史文章太多,手机上翻起来太费劲,怎么快速找到某一天的文章? 如果要找2020…

腾讯云2核4g服务器能支持多少人访问?没搞错吧

腾讯云轻量2核4G5M带宽服务器支持多少人在线访问?5M带宽下载速度峰值可达640KB/秒,阿腾云以搭建网站为例,假设优化后平均大小为60KB,则5M带宽可支撑10个用户同时在1秒内打开网站,并发数为10,经阿腾云测试&a…

vue学习笔记26-插槽Slots

插槽Slots 组件接收模板内容&#xff08;html结构&#xff09;&#xff0c;在某些场景中我们想要为子组件传递一些模板片段。让子组件在它们的组件中渲染这些片段 将子组件在父组件引用后&#xff0c;比以往更改一下,将<子组件名/>➡️<子组件名></子组件名&g…

前后端分离项目环境搭建

1. 使用到的技术和工具 springboot vue项目的搭建 工具 idea&#xff0c;mavennodejs 2. 后端框架搭建 利用maven创建springboot项目 3. 前端项目搭建 1. 安装相关工具 nodejs&#xff1a; 一个开源、跨平台的 JavaScript 运行时环境&#xff0c;可以理解成java当中需要…

VMware Worksation 问题

几个晚上在虚拟机装了好多东西&#xff0c;配置mysql&#xff0c;配置docker、Git工具等等&#xff0c;可能废寝忘食导致太困强制关了虚拟机&#xff0c;结果第二天晚上回来发现打不开&#xff0c;心态直接崩了。 问题&#xff1a; 疯狂百度告知要删除后缀为.lck的文件夹及文件…

腾讯云图形验证码的PHP示例

需要准备的 1.API密钥 SecretId 及 SecretKey 两部分&#xff0c; SecretId 用于标识 API 调用者的身份&#xff0c; SecretKey 用于加密签名字符串和服务器端验证签名字符串的密钥。 前往API密钥管理页面&#xff0c;即可进行获取 https://console.cloud.tencent.com/cam/ca…

Java项目:57 ssm011线上旅行信息管理系统ssm+vue

作者主页&#xff1a;源码空间codegym 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 本线上旅行信息管理系统&#xff0c;主要实现了用户功能模块和管理员功能模块两大部分 用户可查看旅行相关信息&#xff0c;注册登录后还可实…

传输层的UDP协议

1. UDP协议报文格式 1.1 16位端口号 UDP协议报文中&#xff0c;端口号占2个字节&#xff0c;包括 源端口号 和 目的端口号。 1.2 16位UDP长度 UDP报文长度为2个字节 &#xff0c;即UDP数据报长度为0~65535&#xff0c;也就是64kb。 1.3 16位UDP检验和 数据在网络传输的…

【黑马程序员】Python综合案例

文章目录 数据分析案例目的需求数据准备实践数据记录类 文件解析解析csv格式解析json文件 进行数据计算读取文件数据按日期累加数据 图表展示图标绘制最终效果展示 数据分析案例 目的 文件操作实践json库使用三方库pyecharts使用面向对象实践数据容器使用 需求 给定一个csv…

jmeter监听器大家都会用,但我这个妙招能让你提早一小时下班!

使用过 jmeter 的同学&#xff0c;应该都会使用监听器&#xff0c;在每个监听器中&#xff0c;都会有一个“所有数据写入一个文件”的功能&#xff0c;那这个功能应该怎么用呢&#xff1f;今天&#xff0c;我们就来讲讲这个功能的使用。 几乎所有的监听器都有这样一个功能。 那…

解压即用,2024最简单好用AI开源换脸应用,整合包已备好

软件整合包&#xff1a;点击下载 关键词&#xff1a;#AI换脸 #开源应用 #可视化界面 #实时换脸 #高清修复 #多个模型 #人脸遮挡处理 #模糊修复 #性能优化 #操作简单 总结&#xff1a;本软件是一款2024年最强大、最易用的AI换脸开源应用。该应用界面经过汉化&#xff0c;操作简…

find_package 总结

本文参考&#xff1a;“轻松搞定CMake”系列之find_package用法详解 原理 find_package 即在指定目录CMAKE_MODULE_PATH 或 CMAKE_PREFIX_PATH查找对应的cmake文件。 find 模式 Module模式(默认)&#xff1a;查询Findxxx.cmake配置文件, 在CMAKE_MODULE_PATH 目录Config模式…