Spring Cloud —— SkyWalking (一)

1. 链路追踪简介

SkyWalking 是一个分布式链路追踪工具。

链路追踪,就是分布式系统中跟踪记录请求处理全流程的技术,如请求经过了哪些服务节点,在节点的耗时,请求状态等信息。

核心是通过 TraceID (作为唯一标识),将各个调用单元(Span )串联起来,并借助 Context 传递上下文。

Trace:表示一个完整 请求处理过程(从请求到响应结束),包含多个 Span。

TraceID:唯一标识Trace ,便于关联 各服务的日志及监控数据)

Span:Trace 基本单元。 表示请求在服务节点上的处理过程,含操作名耗时等数据。

以发送快递为例,快递单号就是 TraceID,快递的一个个转运仓库就是服务节点,快递到了仓库,从入库到出库的全过程都有对应记录(Span),沿途各仓库中的记录汇集到一起,通过 TraceID 关联在一起,就变成了手机上看到的物流图了(什么时候到哪里了,停留了多长时间)。

2. 链路追踪作用

  • 障系统可用稳定

    链路追踪工具能通过实时采集 CPU、内存、请求成功率等信息,主动发现异常,并在到达阈值时告警,让程序员在问题真正发生前,提前采取措施。

  • 性能 和资源利用率

    链路追踪工具,让每个节点处理的耗时可视化,帮助程序员 识别慢调用并进行优化。

  • 高故障排查效率

    链路追踪工具通过 TraceID 关联各服务的日志为统一的视图,有助于快速定位故障节点(如数据库查询超时,第三方接口异常)。避免了传统排查的人工拼接服务器线索的耗时且易遗漏的问题

  • 理解 服务依赖拓扑

    分布式系统服务之间的依赖关系动态变化,人工维护依赖图谱成本高,使用 链路追踪工具 可自动生成服务拓扑图,显示服务之间的调用频率和成功率,辅助容量规划和架构治理。

3. 相关产品介绍

ZipKin、CAT、SkyWalking 是比较主流的 链路追踪工具。

特点对比:

维度 Zipkin CAT SkyWalking
接⼊复杂度 轻量级,集成Spring Cloud Sleuth即可 需代码埋点 通过Java Agent启动,代码无侵入
数据粒度 接口级 代码级(可细化到具体代码块) 方法级(支持RPC, HTTP)
语言 Java, C#, Python,Nodejs, Golang, Ruby, Scala等 Java, C/C++, Python,Nodejs, Golang等 Java, Python, Nodejs, PHP, Golang,Ruby等
调用链可视化
聚合报表 非常丰富 较丰富
服务依赖图 简单 简单
告警支持 ⽀持 ⽀持
存储机制 内存,ES,MySQL等 mysql(报表),本地⽂件/HDFS(调⽤链) ES, MySQL, banyandb, PostgreSQL等(最新版本已移除H2存储)
社区 ⽂档丰富, 国外主流, 功能迭代较慢 社区活跃低, ⽂档⼀般, 主要国内, 大厂使用多 社区活跃, 更新频繁
优点 轻量, 部署简单, 适合Spring Cloud微服务快速集成 功能全⾯(⽇志采集, 报警, 业务报表), 适合⼤⼚综合监控 非侵入, Apache 背书, 社区活跃
不足 报表能力弱, 功能单⼀ 代码侵⼊性高, 社区不活跃 插件开发门槛高

ZipKin 适合快速搭建链路追踪的中小型团队,对深度监控和业务分析支持有限

CAT 适合中大企业,对报表及监控粒度要求较高

SkyWalking 综合较强,无侵入,支持语言多且性能较优,有较丰富的报表和告警支持,且支持插件定制开发(难度较大)

相关推荐
咖啡八杯1 小时前
GoF设计模式——解释器模式
java·后端·spring·设计模式
糖果店的幽灵1 小时前
【DeepAgents 从入门到精通】Context Management 上下文管理
java·人工智能·后端·spring·中间件·langgraph·deepagents
Linux-18742 小时前
分布式链路追踪系统之二进制安装skywalking
elasticsearch·云原生·skywalking·分布式链路追踪系统·应用程序性能监控
Suhan428 小时前
IDEA 设置启动参数和环境变量
spring boot·spring·编辑器·idea
橘子海全栈攻城狮11 小时前
【最新源码】基于SpringBoot + Vue的超市管理系统的设计与实现D002
java·开发语言·vue.js·spring boot·后端·spring
空中湖11 小时前
Spring AI Function Calling 完全指南:让 AI 查数据库、调 API、发通知
数据库·人工智能·spring
风起洛阳@不良使12 小时前
spring中xml和注解开发的对比
xml·java·spring
野蛮人6号12 小时前
黑马天机学堂Day01-08.搭建项目环境-本地开发部署方式——不知道nacos的密码是什么
java·spring cloud·黑马程序员·天机学堂·黑马天机学堂
weixin_7275356212 小时前
双Token认证体系深度拆解:Spring Security + JWT + Redis
redis·spring·wpf
Ethan010714 小时前
spring事务隔离级别,如果数据库设置为RC,spring可以改为RR吗
spring