Arthas 使用的各类方式

简介: Arthas 是阿里巴巴开源的 Java 诊断工具。让我们能够在线排查项目发生的问题。除了知道它的存在之外,我们也需要知道我们如何去安装使用它,以便于提高我们日常开发解决 BUG 的效率。

方案介绍

方案一:本地直接运行

往往最简单的方法实际是最有效的,它本身就是一个可运行的程序,所以我们可以直接运行即可。

  • 我们可以直接通过官网下载对应的 jar,然后运行再进行 jar,执行对应的命令。
  • 命令如下:
java -jar arthas-boot.jar [option]
  • 演示如下:

1.jpeg

方案二:Web Console实现

我们可以不通过每次进入 ssh 中进行执行程序,我们也可通过 web 方式进行访问操作.通过官网上面的介绍 arthas 的 Web Console,能了解到大致的搭建思路。

  • 通过下载 arthas-tunnel-server。我们可以拿到对应的 arthas 的 server 端。下载完毕之后直接运行即可(我是将其在 ECS 上直接运行)。

2.jpeg

  • 在客户端对应的启动 arthas-boot。并且通过启动参数附加上 server 的地址(我是将其在本地运行)。

3.jpeg

  • 选择对应的进程进行 attach,会出现对应的 agent-id,再将其填写到对应的 server 端 http 页面中。

4.jpeg

5.jpeg

  • 最后我们就可以再 server 端进行操作,即 Web Console 实现完成。

6.jpeg

方案三:项目依赖

基于 Spring 相关搭建的项目直接加入依赖(需要对应的环境支持,例如不能缺少 tools.jar)。
  • SpringBoot 项目依赖:
<dependency><groupId>com.taobao.arthas</groupId><artifactId>arthas-spring-boot-starter</artifactId><version>${arthas.version}</version></dependency>
  • 非 SpringBoot 项目依赖:
<dependency><groupId>com.taobao.arthas</groupId><artifactId>arthas-agent-attach</artifactId><version>${arthas.version}</version></dependency><dependency><groupId>com.taobao.arthas</groupId><artifactId>arthas-packaging</artifactId><version>${arthas.version}</version></dependency>
  • 本地项目启动之后可以直接访问:
http://127.0.0.1:3658/
  • 当然还可以结合上面介绍的 Web Console。例如配置文件中增加对应的配置信息:
arthas.agent-id=qwejqjnnnunnq
arthas.tunnel-server=ws://server地址:7777/ws
  • 演示如下:

7.jpeg

8.jpeg

9.jpeg

以上步骤就是先把 tunnel-server 启动,然后本地配置连接 tunnel-server。然后输入配置的 Id,即可完成对应的调试。

方案四:容器配置

基于 docker 配置,目前上容器服务的企业不在少数。对于容器服务,也是可以适用的。将 jar 下载下来之后进行 ADD 操作,或者每次通过构建 Dockerfile 则会产生对应含有 arthas 的镜像文件。

这里介绍下通过 Dockerfile 进行构建:

FROM openjdk:8-jdk-alpine
ADD target/*.jar app.jar
# copy arthas
COPY --from=hengyunabc/arthas:latest /opt/arthas /opt/arthas
RUN apk add --no-cache tini
ENTRYPOINT ["/sbin/tini", "--"]
CMD ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
MAINTAINER Montos 1367654518@qq.com

上述是通过构建 Dockerfile 来完成的,这里就直接将镜像文件贴出来,这里是将当前 arthas 中的文件复制到对应的容器中,之后我们可以通过 exec -it 进入执行,步骤和方法一类似。

总结

通过上面的介绍,其实我更推荐使用 Web 接入的方式更好,原因如下:

  • 在服务直接部署在服务器上或者 ECS 云服务器情况下。我们可以直接运行在对应的 client 端,但是我们如何上到各个服务所在的服务器上?通过跳板机?那么我们是不是操作的时候会有可能对应服务器造成影响,直接连接服务器上是肯定不行的。
  • 服务在所运行的 pod 情况下。此时让你连接服务是影响是比上面的情况会小很多,如果发生影响也只是影响到当前运行的 pod。但是如果你想直接连接 pod,那么需要的将对应的 pod 端口需要映射到对应的宿主机上,然后再提供外部访问 ecs 的链接。这样会使得每次 pod 需要映射出去的端口需要一定的规则,无疑是加大了运维等工作,运行则也消耗了当前的资源(访问页面等等则走 http 接口请求,如果通过 ws 连接,减少 7 层方面消耗)。
  • 如果通过上述方法,那么我们可以再一台机器上运行 server 即可,我们每次访问都通过访问 server 去连接到到对应的 client 端,同时对应的 agent-id 可以指定,我们可以每次 pod 进行 client 运行的时候指定当前的 agent-id,让其与当前的 pod 进行一个绑定,便于我们通过 server 进行连接。

当然上述观点仁者见仁智者见智。以上介绍了几种部署以及运行 arthas 的方法,企业可以根据当前的项目架构选择合适的部署进行解决。为什么需要????就因为能帮助开发解决问题,不需要来回发版!

欢迎登陆 start.aliyun.com 知行动手实验室体验 Arthas 57 个动手实验:https://start.aliyun.com/handson-lab/#!category=arthas

10.gif

Arthas 实验预览

作者:Montos(一个在后端道路上摸爬滚打的内卷人)

原文链接 

本文为阿里云原创内容,未经允许不得转载

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/514279.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

antd autoplay按f12才会轮播_涨知识了!原来这才是电脑键盘上,F1到F12的正确用法...

在这个快节奏的时代&#xff0c;工作效率可以说是非常重要的&#xff0c;所以熟练掌握电脑就是提高效率的好方法&#xff01;那如何快速的掌握电脑呢&#xff1f;这就不妨先了解下键盘上F1-F12的正确用法哦&#xff0c;每个都是提高效率的快捷键。F1&#xff1a;获取帮助如果你…

新型数据中心需要什么样的存储

作者&#xff1a;浪潮信息首席架构师 叶毓睿 智算时代的序幕已经拉开&#xff0c;互联的万物&#xff0c;一切皆计算机。智慧计算融入到千行万业的图景&#xff0c;正在徐徐铺开。这是一个数据成为生产要素的时代&#xff0c;智慧计算将劳动者由人变成了人AI&#xff0c;将数据…

王者荣耀服务器未响应8月5日苹果,王者荣耀:世冠小组赛8月5日前瞻预测

14:00 深圳DYG vs GOG深圳DYG在上周的比赛遭遇两连败&#xff0c;目前排在A组倒数第二位。队伍进行人员轮换后&#xff0c;Giao在比赛中的发挥可圈可点&#xff0c;但其他队员的状态都下滑明显。辅助位星宇从春季赛的状态就一般&#xff0c;到本次世冠仍然没有提升&#xff0c;…

多中心容灾实践:如何实现真正的异地多活?

简介&#xff1a; 在异地多活的实现上&#xff0c;数据能够在三个及以上中心间进行双向同步&#xff0c;才是解决真正异地多活的核心技术所在。本文基于三中心且跨海外的场景&#xff0c;分享一种多中心容灾架构及实现方式&#xff0c;介绍几种分布式ID生成算法&#xff0c;以及…

HBM3内存子系统传输速率惊人,带宽突破1TB/S!

记者 | 邓晓娟 8月25日&#xff0c;内存IP厂商Rambus推出HBM3内存接口子系统。内含完全集成的PHY和数字控制器&#xff0c;传输速率达8.4Gbps&#xff1b;可为AI/ML和高性能计算&#xff08;HPC&#xff09;等应用和解决方案提供1TB/s的带宽速率&#xff1b;采用标准的16通道设…

android 如何读取cgi_Python基础教程(十):CGI编程、MySQL数据库

Python CGI编程什么是CGICGI 目前由NCSA维护&#xff0c;NCSA定义CGI如下&#xff1a;CGI(Common Gateway Interface),通用网关接口,它是一段程序,运行在服务器上如&#xff1a;HTTP服务器&#xff0c;提供同客户端HTML页面的接口。网页浏览为了更好的了解CGI是如何工作的&…

10亿+文件数压测,阿里云JindoFS轻松应对

简介&#xff1a; Apache Hadoop FileSystem (HDFS) 是被广为使用的大数据存储方案&#xff0c;其核心元数据服务 NameNode 将全部元数据存放在内存中&#xff0c;因此所能承载的元数据规模受限于内存&#xff0c;单个实例所能支撑的文件个数大约 4亿。JindoFS块模式是阿里云基…

一文简单弄懂tensorflow_在tensorflow中设置梯度衰减

我是从keras入门深度学习的&#xff0c;第一个用的demo是keras实现的yolov3&#xff0c;代码很好懂&#xff08;其实也不是很好懂&#xff0c;第一次也搞了很久才弄懂&#xff09; 然后是做的车牌识别&#xff0c;用了tiny-yolo来检测车牌位置&#xff0c;当时训练有4w张图片&a…

打破“单点防护”缺陷,山石网科发布“云网端”XDR解决方案

编辑 | 宋 慧 供稿 | 山石网科 出品 | CSDN云计算 近年来&#xff0c;CISO面临的安全形势可谓“内忧外患”&#xff0c;对内面临多样化的网络接入途径、庞大且繁杂的IT资产&#xff1b;对外面临攻防关系、攻防手段、网络攻击的数量等呈指数级增长等问题&#xff0c;给组织的…

Serverless 场景下 Pod 创建效率优化

简介&#xff1a; 众所周知&#xff0c;Kubernetes 是云原生领域的基石&#xff0c;作为容器编排的基础设施&#xff0c;被广泛应用在 Serverless 领域。弹性能力是 Serverless 领域的核心竞争力&#xff0c;本次分享将重点介绍基于 Kubernetes 的 Serverless 服务中&#xff0…

安装wordcloud_COVID19数据分析实战:WordCloud 词云分析

↑↑点击上方蓝字&#xff0c;回复资料&#xff0c;N个G的惊喜前言上一篇文章(链接)我们对COVID19_line_list数据集进行了清洗以及初步分析。本文中我们将分析如何用词云来展示文本信息的概要。比如我们从词云百度百科截取文字&#xff0c;制作词云。简单来说&#xff0c;词云就…

到达率99.9%:闲鱼消息在高速上换引擎(集大成)

简介&#xff1a; 记录这一年闲鱼消息的优化之路 1. 背景 在2020年年初的时候接手了闲鱼的消息&#xff0c;当时的消息存在各种问题&#xff0c;网上的舆情也是接连不断&#xff1a;“闲鱼消息经常丢失”、“消息用户头像乱了”、“订单状态不对”&#xff08;相信现在看文章的…

1小时打造HaaS版小小蛮驴智能车

1、认识一下小小蛮驴真面目 1.1、组件部分 HaaS100核心板 HaaS100是一款物联网场景中的标准硬件&#xff0c;并配套嵌入到硬件中的软件驱动及功能模块&#xff0c;为用户提供物联网设备高效开发服务。 HaaS100核心板有着丰富的外设接口&#xff0c;如下所示&#xff1a; 智…

Spring Boot Admin 集成诊断利器 Arthas 实践

简介&#xff1a; Arthas 是 Alibaba 开源的 Java 诊断工具&#xff0c;具有实时查看系统的运行状况&#xff1b;查看函数调用参数、返回值和异常&#xff1b;在线热更新代码&#xff1b;秒解决类冲突问题&#xff1b;定位类加载路径&#xff1b;生成热点&#xff1b;通过网页诊…

设计方案,拿来吧你!

作者&#xff1a;零一来源&#xff1a;前端印象前言大家好&#xff0c;我是零一&#xff0c;今天要跟大家聊聊开发流程中不起眼的环节——设计方案。你们可能没听过&#xff0c;也可能只是简单得走过过场&#xff0c;别划走&#xff0c;这非常重要&#xff01;在字节&#xff0…

借力阿里云存储产品 延锋彼欧加速数字化重塑

简介&#xff1a; 延锋彼欧作为汽车外饰件生产的领航企业&#xff0c;通过基于业务和数据驱动的数字化管理&#xff0c;释放工业设备数据潜能提升产能。依托阿里云“稳定、安全、可靠、易用”的存储服务&#xff0c;延锋彼欧的发展步伐将更为稳健。 “一日骋千里&#xff0c;无…

英雄帖!移动云首批最有价值专家(MVP)招募开始了!

这是开发者的时代&#xff0c;这是价值重塑的时代。站在科技的潮头&#xff0c;我们期待去引领、去挖掘、去创造……移动云已迎来飞速发展的黄金期&#xff0c;移动云开发者社区将成为业界优秀开发者的聚集地。今天&#xff0c;移动云开发者社区正式开启移动云MVP首批招募&…

无责任畅想:云原生中间件的下一站

简介&#xff1a; 本文源自 2020 年 12 月 20 日作者在云原生社区 meetup 第二期北京站演讲 《Apache Dubbo-go 在云原生时代的实践与探索》的部分内容 自从以 2013 年开源的 docker 为代表的的容器技术和以 2014 年开源的 K8s 为代表的容器编排技术登上舞台之后&#xff0c;相…

深度剖析:Redis 分布式锁到底安全吗?看完这篇文章彻底懂了!

作者 | Kaito 来源 | 水滴与银弹阅读本文大约需要 20 分钟。大家好&#xff0c;我是 Kaito。这篇文章我想和你聊一聊&#xff0c;关于 Redis 分布式锁的「安全性」问题。Redis 分布式锁的话题&#xff0c;很多文章已经写烂了&#xff0c;我为什么还要写这篇文章呢&#xff1f;因…

Spring Boot 微服务性能下降九成!使用 Arthas 定位根因

简介&#xff1a; 接收到公司业务部门的开发反馈&#xff0c;应用在升级公司内部框架后&#xff0c;UAT&#xff08;预生产&#xff09;环境接口性能压测不达标。 背景 接收到公司业务部门的开发反馈&#xff0c;应用在升级公司内部框架后&#xff0c;UAT&#xff08;预生产&a…