TT time tunnel时空隧道命令使用场景

2023-10-28

场景1 记录请求时间和次数

生产环境一定要加 -n 参数,不然会打满jvm

[arthas@8868]$ tt -t org.fyh.arthas.controller.ProgressController test -n 5
Press Q or Ctrl+C to abort.
Affect(class count: 1 , method count: 1) cost in 99 ms, listenerId: 1
 INDEX      TIMESTAMP                    COST(ms)      IS-RET     IS-EXP      OBJECT               CLASS                                     METHOD
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 1000       2022-09-20 16:21:06          617.5923      true       false       0x2fdd5af4           ProgressController                        test
 1001       2022-09-20 16:21:10          417.3191      true       false       0x2fdd5af4           ProgressController                        test


tt 命令记录2次请求,IS-RET=是否return, IS-EXP=是否exception, 

场景2 模拟内部发起请求
利用时空隧道重复执行,-i是上面的index, 相当是请求的镜像,包含了入参数,这个时候可以使用应用打印日志来判断是否重复执行成功

模拟index为1000的调用

[arthas@8868]$ tt -i 1000 -p
 RE-INDEX       1000
 GMT-REPLAY     2022-09-20 16:21:42
 OBJECT         0x2fdd5af4
 CLASS          org.fyh.arthas.controller.ProgressController
 METHOD         test
 PARAMETERS[0]  @Integer[2]
 IS-RETURN      true
 IS-EXCEPTION   false
 COST(ms)       613.1518
 RETURN-OBJ     @ApiResult[
                    code=@Integer[200],
                    msg=@String[OK],
                    data=null,
                ]
Time fragment[1000] successfully replayed 1 times.

模拟index为1001的调用

[arthas@8868]$ tt -i 1001 -p
 RE-INDEX       1001
 GMT-REPLAY     2022-09-20 16:21:57
 OBJECT         0x2fdd5af4
 CLASS          org.fyh.arthas.controller.ProgressController
 METHOD         test
 PARAMETERS[0]  @Integer[3]
 IS-RETURN      true
 IS-EXCEPTION   false
 COST(ms)       401.6286
 RETURN-OBJ     @ApiResult[
                    code=@Integer[200],
                    msg=@String[OK],
                    data=null,
                ]


场景3 获取到Spring Context,然后为所欲为,任意执行对象和方法
执行tt命令来记录RequestMappingHandlerAdapter#invokeHandlerMethod的请求

1. tt -t org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter invokeHandlerMethod
2. tt -i 1000 -w 'target.getApplicationContext()'
3. tt -i 1002 -w 'target.getApplicationContext().getBean("xxxServiceImpl").xxx()' 触发指定方法执行

备注1:因为我们是SpringMVC应用,所有请求都会被RequestMappingHandlerAdapter拦截
备注2:Arthas会把当前执行的对象放到target变量中;所以是‘target.getApplicationContext()’
备注3:一定要使用 #1 先监听这个类的方法调用,才可以获取#2 获取context

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TT time tunnel时空隧道命令使用场景 的相关文章

  • SPNEGO 密码身份验证问题

    我已将我的应用程序配置为通过 SPNEGO 与 Websphere 使用 Kerberos 身份验证 这是详细信息 krb5 conf libdefaults default realm ABC MYCOMPANY COM default
  • 从文本文件中读取阿拉伯字符

    我完成了一个项目 在该项目中我读取了用记事本编写的文本文件 我的文本文件中的字符是阿拉伯语 文件编码类型是UTF 8 当在 Netbeans 7 0 1 中启动我的项目时 一切似乎都正常 但是当我将项目构建为 jar 文件时 字符以这种方式
  • 在 Java 正则表达式中获取多个模式的重叠匹配

    我有同样的问题这个链接 https stackoverflow com questions 18751486 matching one string multiple times using regex in java 但有多种模式 我的正
  • 对象数组的数组(二维数组)JNI

    我正在努力创建自定义对象类型 ShareStruct 的二维数组 jobjectArray ret jobjectArray ins jobjectArray outs jclass myClass env gt FindClass env
  • 如何在url请求中发送数组

    我的要求如下 我想给出演员姓名 开始日期 结束日期并获取他在该时期出演的所有电影 因此 我的服务请求是这样的 http localhost 8080 MovieDB GetJson name Actor startDate 20120101
  • 这个等待通知线程语义的真正目的是什么?

    我刚刚遇到一些代码 它使用等待通知构造通过其其他成员方法与类中定义的线程进行通信 有趣的是 获取锁后 同步范围内的所有线程都会在同一锁上进行定时等待 请参见下面的代码片段 随后 在非同步作用域中 线程执行其关键函数 即 做一些有用的事情1
  • 如何在 MSSQL 中获取 CURRENT_DATE?

    我正在使用 jpa 3 o 和 Hibernate 我有一个命名查询 SELECT COUNT wt id FROM WPSTransaction wt WHERE wt createdDate gt CURRENT DATE WPSTra
  • JavaFX使节点覆盖父节点边框颜色

    我有一个如下所示的节点 仅使用 css 我希望标签覆盖其父边框颜色 因此标签下方的边框颜色部分变得不可见 我用来制作这个边框的CSS代码 fx border color black fx border width 3 fx border r
  • 如何在 HandlerInterceptorAdapter 中添加 HttpServletRequest 标头?

    我正在尝试将授权标头添加到我的请求中 作为我们切换环境时的临时解决方法 我试图在扩展 HandlerInterceptorAdapter 的拦截器中处理它 我使用 MutableHttpServletRequest 类制作here http
  • 在grails控制器中识别ajax请求或浏览器请求

    我正在开发一个使用大量ajax的grails应用程序 如果请求是ajax调用 那么它应该给出响应 这部分正在工作 但是如果我在浏览器中输入URL 它应该带我到主页 索引页面而不是请求的页面 下面是ajax调用的示例gsp代码
  • Java:SortedMap、TreeMap、可比较?如何使用?

    我有一个对象列表 需要根据其中一个字段的属性进行排序 我听说 SortedMap 和 Comparator 是实现此目的的最佳方法 我是否要与正在排序的类实现 Comparable 还是创建一个新类 如何实例化 SortedMap 并传入
  • 具有 JPA 持久性的 Spring 状态机 - 存储库使用

    我试图弄清楚如何轻松使用 Spring 状态机 包括使用 JPA 进行持久化 这是我正在处理的问题 不兼容的数据类型 工厂和持久性 在程序的某个时刻 我想使用连接到用户的状态机 有用于此目的的存储库 项目spring statemachin
  • 如何在 JPA 和 Hibernate 中将数据库生成的列值定义为只读字段?

    使用 MariaDB 10 2 可以定义日期时间的默认值 例如创建和最后修改 我应该如何将此列作为只读字段访问 因为这个值应该只在数据库的控制之下 并且不应该从代码中修改 但我想在代码中读取这个属性 这很简单 只需设置insertable
  • 纱线上的火花,连接到资源管理器 /0.0.0.0:8032

    我正在我的开发机器 Mac 上编写 Spark 程序 hadoop的版本是2 6 spark的版本是1 6 2 hadoop集群有3个节点 当然都在linux机器上 我在idea IDE中以spark独立模式运行spark程序 它运行成功
  • 为什么无法从 WEB-INF 文件夹内加载 POSModel 文件?

    我在我的 Web 项目中使用 Spring MVC 我将模型文件放在 WEB INF 目录中 String taggerModelPath WEB INF lib en pos maxent bin String chunkerModelP
  • 当底层连接是有状态时如何使用 Apache HttpClient?

    我在谷歌上搜索了很多关于如何使用 HttpClient 进行多线程处理的信息 他们中的大多数人建议使用 ThreadSafeClientConnManager 但我的应用程序必须登录某个主机 登录表单页面 以便 HttpClient 获得底
  • java中使用多线程调用同一类的不同方法

    我有一个类 如下所示 具有三种方法 public class MyRunnable implements Runnable Override public void run what code need to write here to c
  • 让 Hibernate 和 SQL Server 与 VARCHAR 和 NVARCHAR 良好配合

    我目前正在大型数据库的某些表中启用 UTF 8 字符 这些表已经是 MS SQL 类型 NVARCHAR 此外 我还有几个使用 VARCHAR 的字段 Hibernate 与 JDBC 驱动程序的交互存在一个众所周知的问题 例如 参见在 h
  • Axis2 错误:要输出的文本中的空白字符 (0x4) 无效

    我创建了一个 Java 客户端 使用 Axis2 1 7 6 作为代码生成器与 SOAP Web 服务进行交互 问题在于客户端的某些输入抛出异常并显示以下消息 org apache axis2 AxisFault Invalid white
  • Java中单例的其他方式[重复]

    这个问题在这里已经有答案了 只是我在考虑编写单例类的其他方法 那么这个类是否被认为是单例类呢 public class MyClass static Myclass myclass static myclass new MyClass pr

随机推荐

  • 类加载的过程

    1 加载 注意 加载 是 类加载 Class Loading 过程的第一步 1 1 加载的过程 在加载过程中 JVM主要做3件事情 通过一个类的全限定名来获取定义此类的二进制字节流 class文件 在程序运行过程中 当要访问一个类时 若发现
  • 构建跨平台应用的利器——UniApp入门指南

    文章目录 什么是UniApp 介绍UniApp的概念与特点 UniApp相对于其他跨平台框架的优势 UniApp入门指南 安装与环境配置 创建UniApp项目 UniApp项目结构解析 UniApp开发基础 Vue js基础知识回顾 Uni
  • Beautiful Mirrors【Codeforces 1265 E】【期望DP】

    Codeforces Round 604 Div 2 E 题记 不是杭电今年份的原题嘛 为什么比赛的时候没想到这个方面呢 当然题也读错了 尬 杭电多校原题 然后再继续说一下这道题的特殊之处吧 随便说说 典型问题 没有特殊之处 大概画了个图
  • matlab——级数

    级数 级数求和 泰勒级数 级数求和 1 级数求和 求无穷级数的和需要符号表达式求和函数symsum 其调 用格式为 symsum s v n m 其中 s表示一个级数的通项 是一个符号表达式 v是求 和变量 v省略时使用系统的默认变量 n和
  • dfs and bfs template

    在做题的时候发现别人的模板后 再加上自己的理解 形成的更适合自己的模板 相当于随笔 就是记录一下 不做排版 记忆方法 树 BFS queue gt 马的遍历 NOTICE bfs 最短路 DFS stack 递归 gt 红细胞数 BFS t
  • 真香!值得收藏的30道Python练手题(附详细答案)

    大家好 今天给大家分享30道 Python 练习题 建议大家先独立思考一下解题思路 喜欢本文点赞支持 文末提供技术交流群 1 已知一个字符串为 hello world yoyo 如何得到一个队列 使用 split 函数 分割字符串 并且将数
  • 图像分割___图像分割方法综述

    From 变分方法与模糊聚类在图像分割中的应用研究 这里主要简单介绍几类经典的方法 基于边缘检测的方法 基于边缘检测的方法主要是通过检测出区域的边缘来进行分割 利用区域之间特征的不一致性 首先检测图像中的边缘点 然后按一定策略连接成闭合的曲
  • C++自学记录(const限定符)

    目录 const限定符 初始化和 const 默认状态下 const对象仅在文件内有效 const的引用 初始化和对const的引用 对const的引用可能引用一个并非const的对象 指针和const const指针 关于常量指针和指针常
  • C++虚函数的作用和实现原理

    一 什么是虚函数 在某基类中声明为 virtual 并在一个或多个派生类中被重新定义的成员函数 用法格式为 virtual 函数返回类型 函数名 参数表 函数体 实现多态性 通过指向派生类的基类指针或引用 访问派生类中同名覆盖成员函数 二
  • 【Linux内核设计与实现】Linux内核简介

    之前在读 APUE 的时候 更多的是从上层去了解如何使用Linux系统的API 那个时候就十分喜欢Linux的设计 觉得一切都很奇妙 最近有些迷茫 不知道自己以后更加具体的技术方向在哪 所以最近广泛阅读了很多方面的书 C 方面 服务端网络编
  • ‘jmeter‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。

    C Users wtcai gt jmeter jmeter 不是内部或外部命令 也不是可运行的程序 或批处理文件 一般该现象产生的原因是没有配置环境变量 找到此电脑 点击鼠标右键 找到属性 点击鼠标左键 点击右侧的 高级系统设置 然后点击
  • 【机器学习入门】决策树算法(四):CART算法(Classification and Regression Tree)

    CART算法的简介 CART Classification and Regression Tree 算法 即分类回归树算法 也是决策树构建的一种常用算法 CART的构建过程采用的是二分循环分割的方法 每次划分都把当前样本集划分为两个子样本集
  • Git的下载和安装【详细】

    目录 一 前言 二 准备工作 三 安装 无特殊需求可只看第五步一路next即可 lt 1 gt 开始安装 lt 2 gt 选择安装目录 lt 3 gt 选择安装组件 lt 4 gt 选择开始菜单文件夹 lt 5 gt 选择 Git 默认编辑
  • 计算机毕业设计SSM电影推荐系统【附源码数据库】

    项目运行 环境配置 Jdk1 8 Tomcat7 0 Mysql HBuilderX Webstorm也行 Eclispe IntelliJ IDEA Eclispe MyEclispe Sts都支持 项目技术 SSM mybatis Ma
  • 【 linux系统入门管理篇-第三章权限管理】

    linux系统入门管理篇 第三章权限管理 本章介绍 一 基本权限UGO 二 基本权限 ACL 三 特殊权限 本章介绍 本章讲述了 Linux系统CentOS7中关于权限的相关概念 以及用户和组的管理方法 一 基本权限UGO 概述 假如你想设
  • anaconda3/lib/python3.6/site-packages/torch/lib/libtorch_python.so: undefined symbol: PySlice_Unpack

    集群上运行pytorch代码 运行时候发现报错 anaconda3 lib python3 6 sitepackages torch lib libtorch python so undefined symbol PySlice Unpac
  • spring-aop的切入表达式和JoinPoint的使用以及怎么返回通知获取结果和在异常通知中获取异常还有环绕通知

    前言 本篇的Spring AOP系类文章第四篇讲解了spring aop的切入不表达式和JoinPoint的使用以及返回通知获取结果和异常通知中获取异常还有环绕通知 个人主页 尘觉主页 个人简介 大家好 我是尘觉 希望我的文章可以帮助到大家
  • 实验16:20211219 Java大数据1+X 中级实操考试(id:2846)

    实验16 20211219 Java大数据1 X 中级实操考试 id 2846 一 项目背景说明 二 表结构 三 步骤 5 分 步骤 1 项目准备 5 分 步骤 2 完成实体类 Student 10 分 步骤 3 完成实体类 Course
  • Nginx + tomcat 的搭建

    目录 一 硬件需求 二 nginx服务安装 1 系统初始化 2 安装环境 3 创建用户 4 解压 编译 安装 5 优化环境变量 6 配置nginx service文件 7 给与权限 三 tomcat 安装 两台安装一样 1 系统初始化 2
  • TT time tunnel时空隧道命令使用场景

    场景1 记录请求时间和次数 生产环境一定要加 n 参数 不然会打满jvm arthas 8868 tt t org fyh arthas controller ProgressController test n 5 Press Q or C