SpringCloud使用Sleuth分布式链路跟踪
在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的服务节点调用来协同产生最后的请求结果,每一个前端请求都会形成一条复杂的分布式服务调用链路,链路中的任何一环出现高延时或错误都会引起整个请求最后的失败。所以在较复杂的系统中,一个调用链路中会有很多个微服务,无疑我们需要对链路上的微服务进行跟踪。
SpringCloud Sleuth就提供了一套完整的服务跟踪的解决方案,在分布式系统中提供了追踪解决方案并且兼容支持了zipkin,SpringCloud Sleuth负责对微服务调用链路的收集整理,而zipkin负责对链路的展现。
zipkin的搭建安装
SpringCloud从F版之后就不需要自己构建Zipkin Server了,只需要调用相关jar包即可。
zipkin的jar包下载地址 —— 下载速度较慢,可以用阿里云盘或百度网盘下载
阿里云盘下载:https://www.aliyundrive.com/s/yG5iGeGSmDx
百度网盘:https://pan.baidu.com/s/1-IhBSyGxdUc0yoRCvZK2Jw 密码:cxxa
下载其jar包到本地,我下的是当前最新的zipkin-server-2.23.4-exec.jar 。进入到该jar包的目录,在命令行中输入java -jar命令运行该jar文件:
java -jar zipkin-server-2.23.4-exec.jar
访问 http://localhost:9411/zipkin/ 进入zipkin监控平台页面:
Sleuth链路监控展现
在需要被链路监控的微服务中引入如下依赖:
<!--包含了sleuth+zipkin-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
比如前面cloud-order-service微服务(服务提供方)和cloud-user-service微服务(服务消费方),那时候cloud-user-service作为服务消费方访问cloud-order-service提供的微服务,我们现在在这两个微服务中引入上述依赖,并在配置文件中配置zipkin和sleuth的配置信息:
spring:
zipkin:
base-url: http://localhost:9411
sleuth:
sampler:
# 采样率值介于0到1之间,1表示全部采集
probability: 1
在cloud-order-service和cloud-user-service微服务都引入了上述依赖并添加了上面的配置后,启动Eureka服务注册中心,cloud-order-service服务提供方服务、cloud-user-service服务消费方服务,然后我们用cloud-user-service调用cloud-order-service的服务进行测试,在zipkin面板中即可查看服务调用链路:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!