Arthas

阿里巴巴程序员常用的 15 款开发者工具!你知道几个?

元气小坏坏 提交于 2019-11-30 11:55:31
从人工到自动化,从重复到创新,技术演进的历程中,伴随着开发者工具类产品的发展。 阿里巴巴将自身在各类业务场景下的技术积淀,通过开源、云上实现或工具等形式对外开放,本文将精选了一些阿里巴巴的开发者工具,希望能帮助开发者们提高开发效率、更优雅的写代码。 由于开发者涉及的技术领域众多,笔者仅从自己熟悉的领域,以后端开发者的视角盘点平时可能用得到的工具。每个工具按照以下几点进行介绍: 一、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

阿里线上问题诊断工具Arthas和jvm-sandbox

本秂侑毒 提交于 2019-11-30 11:54:54
大纲目录 这篇文章是之前学习Arthas和jvm-sandbox的一些心得和总结,希望能帮助到大家。本文字较多,可以根据目录进行对应的阅读。 背景:现在的问题所在? Arthas: Arthas能帮助你干什么?各种命令原理是什么? jvm-sandbox: jvm-sandbox能帮助你干什么? 实现原理?自己如何实现一个? 常见的一些问题? 1.背景 2018年已过,但是在过去的一年里面开源了很多优秀的项目,这里我要介绍两个比较相似的阿里开源项目一个是Arthas,另一个是jvm-sandbox。这两个项目都是在今年开源的,为什么要介绍这两个项目呢?这里先卖个关子,先问下大家不知道是否遇到过下面的场景呢? 当你线上项目出了问题,但是一打开日志发现,有些地方忘记打了日志,于是你马上补上日志,然后重新上线。这个在一些上线流程不规范的公司还比较轻松,在一些流程比较严格,比如美团上线的时候就有封禁期,一般就只能9点之后才能上线。有可能这样一拖就耽误了解决问题的黄金时刻。 当你的项目某个接口执行速度较慢,为了排查问题,于是你四处加上每个方法运行时间。 当你发现某个类有冲突,好像在线上运行的结果和你预期的不符合,手动把线上编译出的class文件下载下来然后反编译,看看究竟class内容是什么。 当代码已经写好准备联调,但是下游业务环境并没有准备好,于是你把以前的代码依次进行注释

【Arthas】通过Cloud Toolkit插件使用Arthas一键诊断远程服务器

时光毁灭记忆、已成空白 提交于 2019-11-30 07:39:37
>Cloud Toolkit是一个IDE 插件,帮助开发者更高效地开发、测试、诊断并部署应用。 使用本插件,开发者能够方便地将本地应用一键部署到任意机器,或 ECS、EDAS、Kubernetes; 并支持高效执行终端命令和 SQL 等。 Toolkit是一款很强大的工具,它有以下功能 但是这里我们主要讲解 Java应用诊断这个功能; IntelliJ IDEA 插件安装 因 JetBrains 插件市场服务器在海外,如遇访问缓慢无法下载安装的,请 点击这里下载插件包 ,获取离线包安装 确保 IntelliJ 在 2018.1 或更高版本 第 1 步 :打开 Intellij 的 Settings ( Windows下 ) 或 Preferences( Mac下 )窗口 第 2 步 :进入 Plugins 选项,搜索“Alibaba Cloud Toolkit”,并安装即可,如下图: 插件地方 配置远程Arthas 配置直连Host机器 1、添加配置 2、检测连接远程服务器成功 3、打开配置列表 4、点击Diagnosic 一键诊断远程服务器 5、启动成功,选择要诊断的Java进程;输入命令 dashboard 查看 配置需要跳板机Host 选择一个机器作为跳板机就行了 Eclipse插件安装 参考 参考资料 通过Cloud Toolkit插件使用Arthas一键诊断远程服务器

这款 IDE 插件再次升级,让「小程序云」的开发部署提速 8 倍

自古美人都是妖i 提交于 2019-11-29 08:59:58
今年3月份,在阿里云北京峰会上,阿里巴巴正式发布了“阿里巴巴小程序繁星计划”,截至当前,已经有成千上万的开发者加入这个计划,使得小程序得到蓬勃发展,然而不可避免的是,这些服务加重了对云端的开发部署、运行运维等能力的依赖。 直播预告:9月11日(周三)晚上8点,中间件小姐姐萝莉音直播,手把手教你玩转插件和小程序云,学习工作两不误!直播间地址点击 这里 ! 为了满足对众多小程序场景的需求,阿里发布了 「小程序云」 ,为开发者提供了“一次开发,全网运行”的能力,支持 Spring Boot、Node.js 等主流开发框架的运行环境,并在一朵云内实现统一的资源管理、数据运营和业务设计,实现一云多端的业务战略。该一站式小程序云服务最大的亮点还在于可以跨BU、跨部门,无缝对接阿里集团各开放平台服务市场以及天猫、淘宝、菜鸟、蚂蚁等阿里集团各BU业务能力。 所谓“工欲善其事,必先利其器”,我们不仅要掌握最新技术,更要善于运用工具来最大化地发挥自己的能力,所以,为了更进一步提升小程序开发者的工作效率和开发体验,阿里云提供了免费的小程序开发插件—— 「Cloud Toolkit」 ,方便开发者在 IntelliJ IDEA 和 Eclipse 等 IDE 平台内,获得一键开发和部署的体验。 本文从以下几点为大家介绍,如何利用插件,让小程序云的开发部署提速 8 倍。 插件核心功能:一键部署 安装免费插件

Elasticsearch实战 | 必要的时候,还得空间换时间!

99封情书 提交于 2019-11-27 01:36:15
1、应用场景 实时数据流通过kafka后,根据业务需求,一部分直接借助kafka-connector入Elasticsearch不同的索引中。 另外一部分,则需要先做聚类、分类处理,将聚合出的分类结果存入ES集群的聚类索引中。如下图所示: 业务系统的分层结构可分为:接入层、数据处理层、数据存储层、接口层。 那么问题来了? 我们需要基于聚合(数据处理层)的结果实现检索和聚合分析操作,如何实现更快的检索和更高效的聚合分析效果呢? 2、方案选型 方案一: 只建立一个索引,aggs_index。 数据处理层的聚合结果存入ES中的指定索引,同时将每个聚合主题相关的数据存入每个document下面的某个field下。如下示意图所示: 方案一示意图 方案二: 新建两个索引:aggs_index以及aggs_detail_index。 其中: 1)aggs_index存储事件列表信息。 2)aggs_detail_index存储事件关联的文章内容信息。 如下图所示: 方案二示意图 3、方案对比 方案一优点:节省存储空间,只存储关联文章id,数据没有重复存储。 方案一缺点:检索、聚合慢,性能不能达标。 方案一后续的所有操作,都需要先遍历检索这一堆IDs,然后再进行检索、聚合分析操作。 操作实例如下(实际比这要复杂): 第一步:通过事件id,获取关联文章id列表; 第二步:基于关联文章id列表

使用Arthas 获取Spring ApplicationContext还原问题现场

别等时光非礼了梦想. 提交于 2019-11-25 16:53:09
背景 最近来了个实习僧小弟,安排他实现对目标网站 连通性检测的小功能,简单讲就是将下边的shell 脚本换成Java 代码来实现 1#!/bin/bash 2URL="https://www.baidu" 3HTTP_CODE=`curl -o /dev/null -s -w "%{http_code}" "${URL}"` 4#echo $HTTP_CODE 5if [ $HTTP_CODE != '200' ];then 6curl 'https://oapi.dingtalk.com/robot/send?access_token=xx' \ 7 -H 'Content-Type: application/json' \ 8 -d '{"msgtype": "text", 9 "text": { 10 "content": "百度平台状态不正常,请注意!" 11 }, 12 "isAtAll": true 13 }' 14 15fi 功能实现 使用spring task 1@Scheduled(cron = "0 0 0/1 * * ? ") 2public void startSchedule() { 3 log.info("开始执行定时任务 ,检测百度网站连通性"); 4 try { 5 HttpResponse response = HttpRequest.get(""