- 1 问题背景
- 2 前言
- 3 Arthas有什么作用
- 4 入门小实践
- 5 SpringBoot应用、Arthas、Arthas Tunnel Server之间的关系
2 前言线上生产环境常常遇到异常无法定位,用户数据有问题无法在线上生产环境debug,无法得知方法的返回结果,笔者常遇到这些情况,因此研究阿里开源的Java诊断工具——Arthas。Arthas不仅仅是进行线上debug,还能查看jvm情况,类加载等等。
3 Arthas有什么作用Arthas有很多功能以及使用场景,笔者仅研究目前对笔者最有用的功能,就是无需通过日志打印(传统方案是打印日志,查看入参、出参)进行线上debug。
4 入门小实践官方文档介绍如下:
5 SpringBoot应用、Arthas、Arthas Tunnel Server之间的关系花十来分钟访问在线快速入门Arthas看看Arthas是怎么玩的。
从前面的入门小实践可以知道,他们的关系如下:
我们通过启动一个Arthas应用,使用控制台命令与SpringBoot应用A交互。
但是在流式计算里,Java进程(即SpringBoot应用)可以是在不同的机器启动的,想要使用Arthas去诊断会比较麻烦,因为用户通常没有机器的权限(即无法在机器上面启动一个Arthas应用),即使登陆上机器也分不清是哪个Java进程。
因此基于以上的情况,就有了Arthas Tunnel Server,其与SpringBoot应用交互的关系如下(图片不清楚可右击“在新标签页打开”):
引入的arthas-spring-boot-starter依赖,使得SpringBoot应用能成为一个Arthas Tunnel Client角色,每一个Client都有属于自己的agent-id,Arthas Tunnel Server端管理多个Client。用户在浏览器输入arthas的命令行与client交互。



