阿里开源的Java诊断工具——Arthas

文章目录

  • 1 问题背景
  • 2 前言
  • 3 Arthas有什么作用
  • 4 入门小实践
  • 5 SpringBoot应用、Arthas、Arthas Tunnel Server之间的关系

1 问题背景

线上生产环境常常遇到异常无法定位,用户数据有问题无法在线上生产环境debug,无法得知方法的返回结果,笔者常遇到这些情况,因此研究阿里开源的Java诊断工具——Arthas。Arthas不仅仅是进行线上debug,还能查看jvm情况,类加载等等。

2 前言

但在介绍如何使用arthas线上debug之前,笔者先介绍arthas的一些整体概况。从整体架构、调用关系有一定的理解,才容易理解在后面如何使用arthas。

3 Arthas有什么作用

官方文档介绍如下:

阿里开源的Java诊断工具——Arthas_第1张图片

4 入门小实践

花十来分钟访问在线快速入门Arthas看看Arthas是怎么玩的。

5 SpringBoot应用、Arthas、Arthas Tunnel Server之间的关系

从前面的入门小实践可以知道,他们的关系如下:

阿里开源的Java诊断工具——Arthas_第2张图片
我们通过启动一个Arthas应用,使用控制台命令与SpringBoot应用A交互。

但是在流式计算里,Java进程(即SpringBoot应用)可以是在不同的机器启动的,想要使用Arthas去诊断会比较麻烦,因为用户通常没有机器的权限(即无法在机器上面启动一个Arthas应用),即使登陆上机器也分不清是哪个Java进程。

因此基于以上的情况,就有了Arthas Tunnel Server,其与SpringBoot应用交互的关系如下(图片不清楚可右击“在新标签页打开”):

阿里开源的Java诊断工具——Arthas_第3张图片
引入的arthas-spring-boot-starter依赖,使得SpringBoot应用能成为一个Arthas Tunnel Client角色,每一个Client都有属于自己的agent-id,Arthas Tunnel Server端管理多个Client。用户在浏览器输入arthas的命令行与client交互。

你可能感兴趣的:(Arthas,arthas)