链路追踪虽然是运维做的事情,但是我们作为开发的应该走一走
springAli链路追踪
- 什么是链路追踪
- 链路追踪解决方案
- 如何使用skywalking
什么是链路追踪
微服务架构是通过业务来划分服务的,使用REST调用。对外暴露的一个接口,可能需要很多个服务协同才能完成这个接口功能,如果链路上任何一个服务出现问题或者网络超时,都会形成导致接口调用失败。随着业务的不断扩张,服务之间互相调用会越来越复杂
情况如下:
当然服务肯定不止这几个,或许会有上百个,有没有可以帮助理解系统行为、用于分析性能问题的工具,以便发生故障的时候,能够快速定位和解决问题,这就是所谓的 APM(应用性能管理)。
链路追踪解决方案
SkyWalking
- 多种监控手段,语言探针和服务网格(Service Mesh)
- 多语言自动探针,Java,.NET Core 和 Node.JS
- 轻量高效,不需要大数据
- 模块化,UI、存储、集群管理多种机制可选
- 支持告警
- 优秀的可视化方案
如何使用skywalking
1.安装docker,使用docker-compose执行编排文件
1 | version: '3.3' |
docker-compose up -d(启动并后台运行)
docker-compose stop(停止)
访问localhost:9200
2.下载skywalking,修改配置文件config下application.yml
1 | storage: |
3.切换并启动
cd /Users/Yun/apache-skywalking-apm-bin/bin
执行./startup.sh访问默认端口http://localhost:8080
4.在idea中部署探针
增加vm参数
1 | -javaagent:/Users/Yun/mycloud/clouddependencies/spring-cloud-external-skywalking/agent/skywalking-agent.jar |
5.启动项目
其余服务同理设置
- Avg SLA: 服务可用性(主要是通过请求成功与失败次数来计算)
- CPM: 每分钟调用次数
- Avg Response Time: 平均响应时间