萱草|又一款Java调试神器
你有没有遇到这种问题 , 在线下写得代码自信满满 , 肯定不会再出什么幺蛾子了~然而 , 一上线 , 就GG , 要调试起来太麻烦 , 烦的一比 。
【萱草|又一款Java调试神器】其实现在这种情况比较少了 , 毕竟上线一点点代码 , 都需要经过几轮测试 , 提交上线报告 , 你写得那点代码才会上线 , 所以 , 要出现上面这种情况还是比较少 。 然而 , 生产环境一般出现的问题 , 没有一点硬功夫(经验)还真不那么容易分析出来 。 刚好阿里推出一款一款Java诊断工具——Arthas , 菜鸟也可以在线分析调试代码 , 找出病因~
官网:
它主要解决的痛点:
- 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?
- 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?
- 遇到问题无法在线上 debug , 难道只能通过加日志再重新发布吗?
- 线上遇到某个用户的数据处理有问题 , 但线上同样无法 debug , 线下无法重现!
- 是否有一个全局视角来查看系统的运行状况?
- 有什么办法可以监控到JVM的实时运行状态?
- 线上代码有错误 , 不想重新发布?那能不能改class文件替换一下?
# 支持环境
JDK 6+ , Linux/Mac/Windows , 采用命令行交互模式 , 同时提供丰富的 Tab 自动补全功能
# 安装
1、下载jar
默认推荐的安装方式 , 使用jar方式来启动
curl -O-jar arthas-boot.jarjava -jar arthas-boot.jar -h2、在线安装
此方式只适应于 Linux/Unix/Mac 等平台 , 命令如下:
curl -L| sh启动arthas./as.sh PID #进程id 指定JAVA进程id ./as.sh -h #h来获取更多参数信3、在docker中安装#运行arthas-demodocker run --name arthas-demo -it hengyunabc/arthas:latest /bin/sh -c "java -jar /opt/arthas/arthas-demo.jar"#安装arthasdocker exec -it${containerId} /bin/bash -c "wgetpublic class ArthasAttachExample {public static void main(String[] args) {ArthasAgent.attach();}}# 远程连接1、WebConsole
通过浏览器http访问8563端口 , 注意页面红色框内的IP也必须指定服务端的IP , 不能用默认的127.0.0.1 , 如下:
说明一下 , Windows默认telnet客服端没有开启 , 需要你手动开启一下 。
推荐阅读
- 广州恒大|中超转会又一条大鱼浮出水面,或遭三支球队疯抢,恒大成最大热门
- CPU|华为手机出现转机!又一款新机曝光:处理器亮了,联发科被解禁?
- 球会体育|或遭三支球队疯抢,恒大成最大热门,中超转会又一条大鱼浮出水面
- runningman|继《Running Man》后,刘在石又一档综艺陷入版权争议
- 歼-20|又一国看上国产战机,关键部位采用歼-20技术,一口气要采购40架
- |又一行正在“拖垮”年轻人!央行数据“警示”,人均负债超12万
- 机智玩机机|联发科被解禁?,华为手机出现转机!又一款新机曝光:处理器亮了
- 菠萝娱评1|爆款剧预定了,张嘉译又一都市剧开拍!演员班底堪称顶级配置
- 拉斯夫纪|颜值不输瑞虎8,配大7座油耗仅7L,又一良心合资
- 金圆说世界|若开战只用歼20够吗,大国又一王牌武器露面连美国都下令模仿
