在微服务开发如火如荼的今天,微服务也引入了一些额外问题。微服务开发&运维过程当中会常常调用到其余服务暴露的接口,项目足够大时,内部调用会很是复杂,这种复杂性会致使很难去定位问题,出现问题的时候容易互相推诿进而致使效率低下,因此须要在微服务构建的系统中引入服务调用链路追踪工具,方便开发人员快速定位问题。java
目前市面上比较流行的链路追踪工具备Zipkin、CAT、Pinpoint、SkyWalking等等mysql
截止至2020/04/20linux
类别 | SkyWalking | CAT | Zipkin | Pinpoint |
---|---|---|---|---|
可视化界面 | 是 | 是 | 是 | 是 |
报表 | 丰富 | 很丰富 | 近似于无 | 有 |
接入方式 | 非侵入式 | 侵入式 | 侵入式 | 非侵入式 |
UI是否友好 | 是 | 是 | 否 | 是 |
颗粒度 | 方法级 | 代码级 | 接口级 | 方法级 |
数据存储 | ES,H2 | mysql,hdfs | ES,mysql,Cassandra,内存 | Hbase |
社区活跃度 | 13.1k star | 13.1k star | 12.7k star | 10.2k star |
实现方式 | 拦截请求,发送(HTTP,mq)数据至zipkin服务 | java探针,字节码加强 | java探针,字节码加强 | 代码埋点(拦截器,注解,过滤器等) |
ElasticSearch7 API变动比较多,故官网拆分出两个包,可根据ElasticSearch版本选择下载
下载页
SkyWalking 7.0.0
SkyWalking 7.0.0-ES7版本web
将下载好的压缩包解压至用户目录spring
修改config/application.yml修改配置,因为我本地安装的是ES7版本,故将储存引擎由默认的H2修改成ElasticSearch7
sql
启动SkyWalking以前确保ElasticSearch服务启动成功,而后执行oapService.bat(linux下执行oapService.sh)再执行webappService.bat(webappService.sh),或者直接执行startup.bat(startup.sh)apache
确保启动无误以后浏览器访问localhost:8080)浏览器
端口可在webapp/webapp.yml中修改app
将skywalking根目录下的agent目录拷贝至用户目录,新建一个spring-boot项目,
在启动JVM参数中添加如下配置运维
-javaagent:D:\Apache-Skywalking\agent\skywalking-agent.jar -Dskywalking.agent.service_name=你的项目名
启动项目,并访问一个接口能够看到以下拓扑图
本地新建了一个服务,若是是微服务项目服务间调用会很是明显的展现出来