1. 为什么需要链路追踪?
在微服务架构中,一个外部请求往往需要经过多个内部服务调用才能完成。当系统出现性能问题时,传统的日志监控方式很难快速定位问题所在。想象一下,你正在运营一个电商平台,用户投诉"下单慢",但这个请求可能经过了网关、用户服务、商品服务、订单服务、支付服务等多个环节,传统方式需要逐个服务查日志,效率极低。
Skywalking作为一款开源的APM(应用性能监控)系统,通过分布式追踪技术,可以完整记录请求在系统中的流转路径,并自动生成调用链路图。它能告诉你:
- 请求经过了哪些服务
- 每个服务的处理耗时
- 是否存在异常或错误
- 系统资源消耗情况
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与Skywalking部署
2.1 Skywalking服务端部署
Skywalking采用服务端+客户端的架构模式。我们先部署服务端:
bash复制# 下载最新版Skywalking(以9.4.0为例)
wget https://archive.apache.org/dist/skywalking/9.4.0/apache-skywalking-apm-9.4.0.tar.gz
tar -zxvf apache-skywalking-apm-9.4.0.tar.gz
cd apache-skywalking-apm-bin
# 修改存储配置(以Elasticsearch为例)
vim config/application.yml
storage:
selector: ${SW_STORAGE:elasticsearch}
elasticsearch:
nameSpace: ${SW_NAMESPACE:""}
clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200}
# 启动服务端
bin/startup.sh
服务端启动后,默认UI访问地址为http://localhost:8080
提示:生产环境建议使用Elasticsearch作为存储后端,单机测试可以使用H2内存数据库。
2.2 SpringBoot项目准备
创建一个基础的SpringBoot项目,确保有以下依赖:
xml复制<dependencies>
