在微服务开发如火如荼的今天,微服务也引入了一些额外问题。微服务开发&运维过程中会经常调用到其他服务暴露的接口,项目足够大时,内部调用会非常复杂,这种复杂性会导致很难去定位问题,出现问题的时候容易互相推诿进而导致效率低下,所以需要在微服务构建的系统中引入服务调用链路追踪工具,方便开发人员快速定位问题。
目前市面上比较流行的链路追踪工具有Zipkin、CAT、Pinpoint、SkyWalking等等
截止至2020/04/20
类别 | 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版本
将下载好的压缩包解压至用户目录
修改config/application.yml修改配置,由于我本地安装的是ES7版本,故将储存引擎由默认的H2修改为ElasticSearch7
启动SkyWalking之前确保ElasticSearch服务启动成功,然后执行oapService.bat(linux下执行oapService.sh)再执行webappService.bat(webappService.sh),或者直接执行startup.bat(startup.sh)
确保启动无误之后浏览器访问localhost:8080)
端口可在webapp/webapp.yml中修改
将skywalking根目录下的agent目录拷贝至用户目录,新建一个spring-boot项目,
在启动JVM参数中添加以下配置
-javaagent:D:\Apache-Skywalking\agent\skywalking-agent.jar
-Dskywalking.agent.service_name=你的项目名
启动项目,并访问一个接口可以看到如下拓扑图
本地新建了一个服务,如果是微服务项目服务间调用会非常明显的展示出来
原文:https://www.cnblogs.com/pettyfer/p/12812450.html