记得之前写过一篇Arthas的使用教程。通过使用Arthas,我们可以同时实现在线调试和热修复。最近浏览了Arthas的官网,发现它已经支持直接集成到SpringBoot应用中,并且还有专门的IDEA插件。今天我们再体验一下,看看它的功能是不是更强大!SpringBoot实战电商项目商城(50k+star)地址:https://github.com/macrozheng/mallArthas简介Arthas是阿里巴巴开源的Java诊断工具,深受开发者喜爱,目前在Github上有29K+star。采用命令行交互方式,提供丰富的Tab自动补全功能,进一步方便问题定位和诊断。为了演示更真实的线上环境,ArthasTunnel接下来会对Docker容器中的SpringBoot应用进行诊断。我们将使用ArthasTunnel来实现它。ArthasTunnel相当于一个网页控制台。使用它,我们可以在不进入应用容器的情况下对应用进行诊断,非常方??便。首先我们需要下载ArthasTunnel的安装包,下载地址:https://github.com/alibaba/ar...由于官方只提供了JAR包,如果想通过Docker启动,可以自己打包Docker镜像,打包使用的Dockerfile脚本如下:#镜像需要依赖的基础镜像FROMjava:8#将当前目录下的jar包复制到docker容器的/目录下ADDarthas-tunnel-server.jar/arthas-tunnel-server.jar#声明服务运行的端口EXPOSE80807777#指定docker容器启动时运行的jar包ENTRYPOINT["java","-jar","/arthas-tunnel-server.jar"]#这里再次指定维护者MAINTAINER宏的名称提供一键打包运行ArthasTunnel容器的执行脚本run.sh。脚本内容如下;#!/usr/bin/envbash#定义应用组名group_name='mall-tiny'#定义应用名app_name='arthas-tunnel-server'#定义应用版本app_version='1.0-SNAPSHOT'echo'----copyjar----'dockerstop${app_name}echo'----stopcontainer----'dockerrm${app_name}echo'----rmcontainer----'dockerrmi${group_name}/${app_name}:${app_version}echo'----rmimage----'#打包编译docker镜像dockerbuild-t${group_name}/${app_name}:${app_version}.echo'----buildimage----'dockerrun-p8080:8080-p7777:7777--name${app_name}\-eTZ="Asia/Shanghai"\-v/etc/位置altime:/etc/localtime\-v/mydata/app/${app_name}/logs:/var/logs\-d${group_name}/${app_name}:${app_version}echo'----启动容器----'接下来将ArthasTunnel的JAR包、Dockerfile和执行脚本run.sh上传到Linux服务器,然后使用./run.sh命令运行;运行成功后,可以直接访问ArthasTunnel的web控制站,访问地址:http://192.168.3.105:8080SpringBoot集成在SpringBoot应用中直接集成使用Arthas无疑是最方便的,接下来我们将使用这种方式首先在项目的pom.xml中添加如下依赖。可以对比一下Arthas教程中的使用方法,直接集成确实简单很多;
