Java基础、中级、高级、架构面试资料

阿里 Arthas 正式支持 MCP,Java 线上诊断迈入 AI 时代

JAVA herman 11浏览
公告:“业余草”微信公众号提供免费CSDN下载服务(只下Java资源),关注业余草微信公众号,添加作者微信:xttblog2,发送下载链接帮助你免费下载!
本博客日IP超过2000,PV 3000 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog2,之前的微信号好友位已满,备注:返现
受密码保护的文章请关注“业余草”公众号,回复关键字“0”获得密码
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
视频教程免费领
【腾讯云】1核2G5M轻量应用服务器50元首年,高性价比,助您轻松上云

还久没用 Arthas 了,今天打开它的官网一看,卧槽,它竟然支持了 MCP。

而且它的迭代速度比感觉比 Java 生态里的 Spring 还要快。

我以为它已经成熟了,最多支持一些新 JDK。没想到它竟然要蹭上 AI 了。既然如此,那我今天就来试试这个 Arthas + MCP 把,体验一下这个 Java 线上诊断正式迈入“AI 对话”时代能力。

文章配图参见 https://mp.weixin.qq.com/s/dWlODscV4CS9FNrmNMMnDw

Java 的线上救火队

Arthas 自 2018 年开源以来,已成为 Java 线上排障的“瑞士军刀”。它基于 Java Instrumentation API 与 ASM 字节码增强技术,能在不重启、不修改代码的前提下,实时查看线程状态、追踪方法耗时、反编译类文件、监控入参返回值。

传统 Arthas 诊断的典型流程是。

  1. 登录服务器,执行 java -jar arthas-boot.jar attach 目标进程
  2. dashboard 查看整体状态,找高 CPU 线程
  3. thread <id> 查看具体线程堆栈
  4. 根据堆栈信息,用 jad 反编译可疑类
  5. 必要时用 tracewatch 追踪方法执行

这个流程虽然强大,但门槛极高。你得记住 20+ 个命令的参数格式,懂得 OGNL 表达式,知道如何限量避免线上刷屏,更需要掌握“排障路径”,先拿证据,再收敛,再验证。

真正耗时的不是“敲命令”,而是每一步的决策。

AI 时代的更多可能性

MCP(Model Context Protocol,模型上下文协议)由 Anthropic 于 2024 年 11 月提出并开源,旨在标准化 AI 助手与各种工具、数据源的连接方式。

在 MCP 出现之前,每个 AI 模型对接每个工具都需要定制集成,形成 N×M 的碎片化问题。MCP 用一个通用接口解决了这一困境:MCP Server 只需构建一次,就能被任何 MCP 客户端(如 Claude Desktop、Cursor、Cherry Studio)调用。

Arthas MCP Server 正是基于这一协议,通过 HTTP/Netty 提供统一的 JSON-RPC 2.0 接口,将 Arthas 的诊断命令封装成 26 个 AI 可调用的工具。

类别工具数量核心功能
JVM 相关12 个dashboard、heapdump、thread、memory、jvm、ognl 等
类加载相关8 个sc、sm、jad、classloader、redefine、dump 等
监控诊断6 个monitor、stack、trace、watch、tt、profiler

这样更能简化大家的日常排查难度和操作步骤。

一句话排查 CPU 飙高

接下来,让我们通过一个真实场景,看看 Arthas MCP 如何改变诊断体验。

话说,某天晚上 8 点高峰期,订单服务 CPU 飙升到 98%,接口响应变慢。

传统方式(无 AI)

在无 MCP 模式下,你需要登录服务器 → 启动 Arthas → 敲 dashboard 找高 CPU 线程 → 记住线程 ID → 敲 thread 29 → 手动分析堆栈 → 定位到代码 → 修改 → 发布。

整个过程 15-30 分钟,每一步都可能因为不熟悉命令而卡住。

AI + Arthas MCP 方式

现在,新版本的 Arthas 支持 MCP 了。因此,你只需在 Cherry Studio 或 Claude Desktop 中输入。

我的订单服务 CPU 飙到 98%,帮我排查一下是哪个线程导致的高 CPU,它卡在哪里了?

AI 会自动执行以下诊断剧本。

第一步:调用 dashboard 查看整体情况。

AI 自动执行 dashboard 命令,发现线程 ID 29(http-nio-8080-exec-8)CPU 占用 89.2%。

第二步:调用 thread 查看线程堆栈。

AI 执行 thread 29,获取完整堆栈。

at java.util.regex.Pattern$GroupHead.match(Pattern.java:4660)
at com.xttblog.logging.LogAspect.logAround(LogAspect.java:47)
at com.xttblog.order.service.OrderService.getOrder(OrderService.java:123)

第三步:AI 分析并给出结论,AI 自动识别出问题根源。

线程卡在 java.util.regex.Pattern 的正则匹配中。调用链显示问题发生在 LogAspect.java:47 的日志切面。该切面在处理超长字符串时,触发了性能极差的正则表达式(贪婪匹配 + 回溯),导致 CPU 占满。

第四步:给出修复建议。

临时措施:关闭日志切面;根本修复:将正则 .* 改为 [^"]* 避免回溯,或改用 indexOf 替代;增加长度限制,超过 2000 字符不进行脱敏处理。

整个过程不到 30 秒,无需你记住任何 Arthas 命令。

想不到呀,AI 写代码,AI 还能自动排查问题,不少程序员真的要被淘汰了。

Arthas MCP 的技术架构

下面,我们一起看下 Arthas MCP 的技术架构吧。

根据官方文档,Arthas MCP Server 的配置非常简单。

第一步,启用 MCP 服务。在 arthas.properties 中添加。

arthas.mcpEndpoint=/mcp
arthas.httpPort=8563

第二步,验证服务启动。

curl http://localhost:8563/mcp

第三步,配置 AI 客户端(以 Cherry Studio 为例)。

{
  "mcpServers": {
    "arthas-mcp": {
      "type": "streamableHttp",
      "url": "http://localhost:8563/mcp"
    }
  }
}

需要特别注意安全认证,当配置 arthas.password 时,MCP Server 会自动开启 Bearer Token 认证,需在请求头中携带 Authorization: Bearer <password>

AI 诊断 Java 故障,靠谱吗?

这应该是大多数人最关心的问题。从目前的社区实践来看,Arthas MCP 的可靠性体现在以下几个方面。

内置排障剧本

Arthas Agent 内置了阿里巴巴多年积累的百万级诊断经验,AI 知道 CPU 高要先看 dashboard 还是 thread -n,知道拿到堆栈后如何继续收敛。这相当于随身带了一位 10 年经验的架构师。

安全可控

  • 命令限量:每轮只推进 1-2 步,避免线上冲击
  • 低风险优先:默认使用只读命令(thread、jad、sc),慎用 redefine
  • Bearer Token 认证:防止未授权访问

人机协作

AI 负责“初诊”和“信息收集”,生成结构化报告(结论/证据/原因/建议),最终决策和修复仍由人工完成。这种人机协作模式,既发挥了 AI 的信息处理能力,又保留了人类的专业判断。

当然,Arthas MCP 目前仍是实验性模块,功能在快速迭代中,复杂场景可能需要人工干预验证 AI 推断。

适用场景

除了 CPU 飙高,Arthas MCP 还能帮你排查。

问题类型AI 调用命令诊断能力
接口变慢trace自动追踪调用链,找出最慢方法
内存泄漏heapdump + memory生成堆转储,分析大对象
死锁thread -b检测死锁线程,显示等待关系
参数异常watch监控方法入参和返回值
类加载问题scclassloader查看类加载路径和加载器统计

除了这些,你日常工作中遇到的各种性能、代码故障问题等,都可以使用 Arthas 来排查。

目前官方支持 Arthas MCP 的 AI 客户端还包括 Claude Desktop、Cherry Studio、Cline、Cursor 等。感兴趣的网友可以抽空体验一番。

结语

Arthas 接入 MCP,标志着 Java 线上故障排查进入了“AI 辅助诊断”的新阶段。

这不仅是工具的升级,更是“思维方式的转变”,从“记住命令”到“描述问题”,从“人工决策”到“人机协作”。对于刚入行的 Java 开发者,这意味着不再需要背诵厚厚的 Arthas 手册;对于资深工程师,这意味着可以把重复性的信息收集交给 AI,专注于根因分析和架构优化。

正如一位大佬所说:“以前排查线上问题像侦探破案,现在像有个助手帮你整理好了所有证据,你只需要做最终判断。”

未来已来,你准备好进行 AI 人机协作,用 AI 排查线上问题了吗?

业余草公众号

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加作者微信号:xttblog2。备注:“1”,添加博主微信拉你进微信群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作也可添加作者微信进行联系!

本文原文出处:业余草: » 阿里 Arthas 正式支持 MCP,Java 线上诊断迈入 AI 时代