Arthas

长话短说,阿里云原生团队招人,急

梦想与她 提交于 2020-08-10 20:08:54
我们在找谁? 毕业时间为 2020 年 11 月- 2021-10 月海内外高校的全日制本科、硕士、博士 。 计算机、数学、电子工程、通信等相关专业; 具备扎实的数据结构和计算机系统基础,精通一种开发语言; 对基础软件充满热情,具备较好的动手能力和技术热情,有成功的研究型或实战型项目技术成果落地者优先; 关注开源技术,有开源贡献者优先。 下面跟你说说阿里云那么多团队,为什么你要来云原生团队。 这里,有你听说过的大佬 这里,有你听说过的项目 云原生团队诞生了 Apache RocketMQ、Apache Dubbo、Spring Cloud Alibaba、Nacos、Seata、Arthas 等开源项目。 Apache 顶级项目就有两个! 2020 年阿里巴巴开源编程之夏 20 个参与项目,其中有 10 个来自云原生团队! 我们每年都会举办中间件技术挑战赛,邀请业界各路大牛切磋技艺,今年有 1 万个开发者参与! 这里是阿里“技术中台”的发源地,我们服务了许多阿里以外的知名互联网企业,我们为许多龙头企业提供了微服务相关的最佳实践和解决方案,帮助许多传统企业完成了数字化转型。 在这里,你能够全面提升你的个人技术影响力、沟通能力和行业知名度。 这里,有独一无二的场景 作为阿里核心的技术部门之一,我们是整个集团技术的“底座”,我们的产品向上支撑了淘宝、天猫、盒马、菜鸟

得亏了它,我才把潜藏那么深的Bug挖出来

梦想与她 提交于 2020-08-10 18:31:54
2020 年写了很多事故解决的文章,并不是我绞尽脑汁想出来的,而是真的遇到了这些问题。通过文章的方式记录下来,分享出去,才有意义。 事故背景 首先看下面的图吧,这是我从 cat 上截的图。 可以看到是一个 Rpc 调用的错误,从错误中我们只能分析出这个 Rpc 的请求成功了,并且返回了,因为都走到了反序列化这步。 最后是在创建 DTO 对象的时候报错了,Could not initalize class xxxxx.DTO说明了这一点。 作为一个调用方,虽然看到了明确的错误,但还是要本着严谨的态度去排查问题,还是先确认服务提供者到底有没有问题,跟同事确认了,服务提供方没问题,通过 telnet 可以正常 invoke。 好了,到这为止就把背景交代清楚了,能不能将这个潜藏的 Bug 找出来就各显身手吧。 arthas 大显身手 要想效率高,那必须得有好用的工具呀!arthas 挺身而出,都毛遂自荐了,不用白不用。 首先使用 sc 命令查看 JVM 已加载的类信息,就看这个不能实列化的类到底有没有被成功加载。 sc -d 类全路径 (打印类的详细信息) 类的信息都被打印出来了,足以证明这个类被加载了。 然后打印下类里面的字段,看看有没有丢失什么的 sc -d -f 类全路径 (打印出类的Field信息) 居然报错了,错误还跟我们之前在 cat 中看到的一模一样,这边也是要是创建对象

BAT程序员常用的开发工具,建议收藏!

大憨熊 提交于 2020-08-10 11:05:54
以下文章来源于InfoQ ,作者InfoQ编辑部 今天给大家推荐一批 BAT 公司常用的开发工具,个个好用,建议转发+收藏。 阿里篇 一、Java 线上诊断工具 Arthas Arthas 是阿里巴巴 2018 年 9 月开源的一款 Java 线上诊断工具。 使用场景: 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了? 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗? 线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现! 是否有一个全局视角来查看系统的运行状况? 有什么办法可以监控到 JVM 的实时运行状态? Arthas 支持 JDK 6+,支持 Linux、Mac、Windows,采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,进一步方便进行问题的定位和诊断。 使用教程: 基础教程: https://alibaba.github.io/arthas/arthas-tutorials?language=cn&id=arthas-basics 进阶教程: https://alibaba.github.io/arthas/arthas-tutorials?language=cn&id=arthas-advanced 开源地址: https:

Arthas 征文活动火热进行中,cherry 键盘等你来拿!(内附第三期中奖名单)

空扰寡人 提交于 2020-08-10 02:22:37
为了让更多开发者开始用上 Arthas 这个Java 诊断神器,3 月 26 日,我们联合 JetBrains 推出第一期 Arthas 有奖征文活动 : 聊聊这些年你和 Arthas 之间的那些事儿 。 一石激起千层浪,在前三期活动期间我们得到了众多开发者的积极响应,闻讯赶来投稿的同学络绎不绝,截止到现在,第三期征文活动已结束,经过层层挑选与评估,以下为第三期征文活动的获奖情况: 汪小哥 冯富杰 奖品说明 :以上同学将在 Arthas Most Valuable User 福袋(包含淘公仔、Arthas 贴纸、JetBrains 周边礼包)的基础上另送出蓝牙音响一台; 注:所有礼品将于开奖后 7 个工作日内发出,请耐心等待! 推荐使用 Arthas 方式一: 推荐使用 IDEA 插件下载 Cloud Toolkit 来使用 Arthas Cloud Toolkit 是阿里云发布的免费本地 IDE 插件,帮助开发者更高效地开发、测试、诊断并部署应用。通过插件,可以将本地应用一键部署到任意服务器,甚至云端(ECS、EDAS、ACK、ACR 和 小程序云等);并且还内置了 Arthas 诊断、Dubbo工具、Terminal 终端、文件上传、函数计算 和 MySQL 执行器等工具。不仅仅有 IntelliJ IDEA 主流版本,还有 Eclipse、Pycharm、Maven

记录一次 Arthas 使用

谁都会走 提交于 2020-08-09 22:44:58
【Arthas 官方社区正在举行征文活动,参加即有奖品拿~ 点击投稿 】 前言 疫情期间,在家办公,每天都是 007,感觉自己已经升级为熊猫特工了,心累,身体疲惫!!! 今天终于有时间休息一下,然后记录一下在家办公期间 Arthas 的简单使用。 下载安装 方式一: 推荐使用 IDEA 插件下载 Cloud Toolkit 来使用 Arthas Cloud Toolkit 是阿里云发布的免费本地 IDE 插件,帮助开发者更高效地开发、测试、诊断并部署应用。通过插件,可以将本地应用一键部署到任意服务器,甚至云端(ECS、EDAS、ACK、ACR 和 小程序云等);并且还内置了 Arthas 诊断、Dubbo工具、Terminal 终端、文件上传、函数计算 和 MySQL 执行器等工具。不仅仅有 IntelliJ IDEA 主流版本,还有 Eclipse、Pycharm、Maven 等其他版本。 方式二: 直接下载 启动:java -jar arthas-boot.jar 这里需要重点说明一下:必须使用和目标进程相同的用户,否则启动不成功。 问题背景 本人前天刚上线一个任务。由于某产品手误,误操作了线上数据,要求帮忙把数据删除了。 这尼玛的真坑啊,明显是坑老子。 还好有先见之明,没次做任务的时候多多少少都会写几个后门工具( 不是为了删库跑路,而是这些后门在特定情况下真能应急使用

“举报”阿里巴巴 Arthas,大幅降低 OOM Trouble shooting 门槛

拈花ヽ惹草 提交于 2020-08-09 21:46:08
作者 | Mason MA 【Arthas 官方社区正在举行征文活动,参加即有奖品拿哦~ 点击投稿 】 Arthas 是个不错的工具,这里要再安利一波,当然整个过程还用到了其他工具,如 MAT、YourKIT(这个是付费的),结合起来使用更加便于发现和解决问题。期间还和开发大佬多次沟通,分别获取了不同的信息。 一键安装并启动 Arthas 方式一:通过 Cloud Toolkit 实现 Arthas 一键远程诊断 Cloud Toolkit 是阿里云发布的免费本地 IDE 插件,帮助开发者更高效地开发、测试、诊断并部署应用。通过插件,可以将本地应用一键部署到任意服务器,甚至云端(ECS、EDAS、ACK、ACR 和 小程序云等);并且还内置了 Arthas 诊断、Dubbo工具、Terminal 终端、文件上传、函数计算 和 MySQL 执行器 来源: oschina 链接: https://my.oschina.net/u/4414119/blog/4309939

你还搞不懂Java如何实现热更新?这样解释你应该能看懂了吧?

你离开我真会死。 提交于 2020-08-09 16:36:20
Arthas(阿尔萨斯)是 Alibaba 开源的一款 Java 诊断工具,使用它我们可以监控和排查 Java 程序,然而它还提供了非常实用的 Java 热更新功能。 所谓的 Java 热更新是指在不重启项目的情况下实现代码的更新与替换。使用它可以实现不停机更新 Java 程序,尤其是对那些启动非常耗时的 Java 项目来说,更是效果显著。 Arthas 的使用其实非常简单,它为我们提供了一个 Jar 包,我们只需要把这个 Jar 下载到本地,然后运行这个 Jar 包就可以正常使用它的功能了。 Arthas 功能简述 当你遇到以下类似问题而束手无策时,Arthas 可以帮助你解决(来自官方): 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了? 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗? 线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现! 是否有一个全局视角来查看系统的运行状况? 有什么办法可以监控到JVM的实时运行状态? 怎么快速定位应用的热点,生成火焰图? Arthas 支持 JDK 6+,支持 Linux/Mac/Winodws,它采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,进一步方便进行问题的定位和诊断。 Arthas

JAVA和GO真香!谁用谁知道!

馋奶兔 提交于 2020-08-08 20:51:31
  今天面了个32岁的Java程序员,各方面都挺好,问啥都会,对于JVM调优问题,答得还行,最后问了个Go语言GC问题,就答不上来了,走时几乎落泪...唉!    细想想...   当面试官向你提问JVM的实战问题时,你是否感觉到无所适从?   想解决生产环境中的GC问题,你是否感觉到狗咬刺猬,无处下嘴?   面对JVM的海量参数,你是否感觉到迷茫无助?   看过很多的JVM文章,但当遇到了生产环境中真实问题的时候,你是否依然不知道如何进行分析排查?   如果是这样,我觉得我们大家先想清楚在 金九银十 这个时间段“ 自己想要什么 ”最为重要      我认为是 “实战” !    “实战” 可以让我们 快速消除痛点,解决面试,积累实战经验 。   在这里小编推荐你,拿出2小时的时间   赶紧参加【马士兵老师】的 「JVM实战调优」 集训营   马老师带你横扫一切关于JVM的面试问题,吊打所有敢于提问JVM的面试官。   让你在简历中,填写上JVM调优经历,为升职加薪添上浓墨重彩的一笔。    点开看...       下面这些内容,全网首讲,你从未听过,且只讲一次   Go语言内存管理和Java的异同,Rust语言为什么不需要GC?   Golang的内存管理和Jvm有何不同?   Golang的gc算法和Jvm有何不同?   Golang的内存调优应该如何做?  

arthas命令tt方法时空隧道

ぃ、小莉子 提交于 2020-08-05 20:45:35
arthas 是一个 Java 开源诊断神器。 今天分享一个非常重要的命令 tt ,全称是 TimeTunnel ,记录下指定方法每次调用的入参和返回信息,并能对这些不同的时间下调用进行观测。这个命令与之前讲到的 arthas命令watch观察方法调用(上) 、 arthas命令watch观察方法调用(下) 从大概功能上比较相似,区别在于 watch 如果想发挥足够的排查作用,必需熟练掌握 ognl 语法,特别是高级语法这样才能从大量的请求中筛选出来自己想要的, tt 命令相对简单,而且还支持 录制、重放 功能,可以说非常强大。在 arthas 运行的过程中,经过 tt 命令保存的方法都是可以重放的。 字段说明 表格字段 字段解释 INDEX 时间片段记录编号 TIMESTAMP 方法执行的本机时间 COST(ms) 方法执行的耗时 IS-RET 方法是否以正常返回的形式结束 IS-EXP 方法是否以抛异常的形式结束 OBJECT 执行对象的hashCode() CLASS 执行的类名 METHOD 执行的方法名 这里有个问题视频中未讲明白, hashcode() 方法得到的是对象在 JVM 中内存地址的映射。 arthas命令tt方法时空隧道 点击观看视频 Demo代码 package com.fun; import com.alibaba.fastjson.JSONObject

谁再悄咪咪的吃掉异常,我上去就是一 JIO

旧城冷巷雨未停 提交于 2020-08-05 17:57:34
又到周末了,周更选手申请出站~ 这图太魔性了啊 这次分享一下上个月碰到的离奇的问题。一个简单的问题,硬是因为异常被悄咪咪吃掉,过关难度直线提升,导致小黑哥排查一个晚上。 这个美好的晚上,本想着开两把 LOL 无限火力,在召唤师峡谷来个五杀的~ 哎,就这样没了啊!我知道,你们一定能理解这种五杀被抢的感觉~ 下次,真的,谁再让我看到悄咪咪的吃掉异常,我真的要上去一 Jio 了! 好了,本文可不是水文,看完本篇文章,你可以学到以下知识点: Arthas 排查技巧 啥是 NoClassDefFoundError Dubbo 异常内部处理方式 好了,同学们,打开小本子,准备记好知识点~ 起因 我们有个业务系统,应用之间调用链如下所示: A 应用是业务发生起始应用,在这个应用中将会根据一定规则选择最后的通讯渠道 C,然后将这个渠道标识传递给 B 应用。 B 应用的功能类似网关,这个应用将会根据 A 应用传递过来的渠道标识,将会请求路由下发到具体的 C 应用,起到服务路由的功能。 C 应用是与外部应用交互的应用,我们将其称为渠道通讯机。 假设一次业务中,A 应用根据规则选择 C2 的渠道标识,然后传递给 B 应用。B 应用根据这个标识选择使用 C2 进行通讯,最后 C2 调用外部应用完成一次业务调用。 上述所有应用都基于 Dubbo 进行远程通讯,B 应用实现原理在小黑哥之前文章「