59-微服务技术栈(高级):在线检测工具Arthas(精准定位Java应用CPU负载过高)

简介: 开发者对于生产问题故障的排查、定位,随着微服务的喷发,也不再像是以前那边依赖纯日志、gc日志进行问题排查与定位了,本节开始介绍一个生产环境使用的排错工具Arthas,帮助大家更高效、便捷地实现生产问题排错。
+关注继续查看

1.前言

尝试一:定位哪个Controller执行了代码

前言

trace指令能追踪调用链路,而Springmvc应用都是借助于:javax.servlet.Servlet * 执行的

watch指令能够实时监测指定方法的:返回值,抛出异常,入参,同时支持OGNL操作

实践

为了节省时间,这里直接给出实施方案,采用watch指令,命令如下[监听内容是依靠trace的内容决定的,但是SpringMvc应用都是一样的,所以可以复用]:

watch org.springframework.web.servlet.DispatcherServlet getHandler returnObj

发起调用会看到打印信息,就能迅速定位到对应的代码

image

尝试二:反编译查看代码

image

相关文章
|
7天前
|
Java
Java异步编程Future应用
Java异步编程Future应用
8 0
|
8天前
|
算法 Java Linux
Java线程常用定时任务算法与应用
Java线程常用定时任务算法与应用
27 0
|
8天前
|
资源调度 算法 Java
Java线程常用调度算法与应用
Java线程常用调度算法与应用
17 0
|
8天前
|
缓存 弹性计算 算法
Java高并发系统限流算法的应用
Java高并发系统限流算法的应用
30 0
|
10天前
|
监控 搜索推荐 算法
Java排序:原理、实现与应用
在计算机科学中,排序算法是一种能够将一系列数据按照某种特定顺序进行排列的算法。Java作为一种流行的编程语言,提供了多种内置的排序方法和实现,如快速排序、归并排序、冒泡排序等。本文将介绍Java中排序的原理、实现方法以及应用场景。
|
11天前
|
弹性计算 Java 数据安全/隐私保护
使用Java面向对象编写网络通信程序应用
本实验将提供一台 Windows Server 2012 64位的 ECS 实例。首先进行Java环境的搭建与配置,然后进行Python开发环境的搭建与配置,最后使用Java与Python语言分别编写与运行简单程序,并进行验证。
13 0
|
11天前
|
缓存 Java API
SPI 在 Java 中的实现与应用
sharding-jdbc 是一款用于分库分表的中间件,在数据库分布式场景中,为了保证数据库主键的唯一性,会采取相应的主键生成策略,而主键生成策略有很多种实现。sharding-jdbc 在主键生成策略使用了 SPI 进行装配。
8 0
|
12天前
|
消息中间件 SQL 弹性计算
RocketMQ中使用Java客户端发送消息和消费的应用
本教程将总结使用java客户端消息发送和消费各种场景, 并Demo演示
143 1
|
12天前
|
缓存 Java
理解缓冲流及其在Java中的应用
理解缓冲流及其在Java中的应用
|
2月前
|
Arthas 存储 运维
记Arthas实现一次CPU排查与代码热更新
线上代码经常会出现CPU占用过高的情况,按以往经验我会使用top指令,进一步借助于jstack去查看具体信息从而进行问题排查,但基本上都逃不过需要重新发包的局面,即使是一个增量包,应用也需要短暂停启。后来运维大兄弟让我试一下Arthas,说是可以进行代码的热更新操作,正好来试一下。
194 0
相关产品
微服务引擎
服务网格
推荐文章
更多