一、Sleuth概述
在微服务框架中,一个由客户端发起的请求在后端系统中会结果多个不同的服务节点调用来协同产生最后的请求结果,每一个前段请求都会形成一条复杂的分布式服务调用链路,链路中的任何一环出现高延时或错误都会引起整个请求最后的失败。
- 官网:https://github.com/spring-cloud/spring-cloud-sleuth
- Spring Cloud Sleuth提供了一套完整的服务跟踪的解决方案
- 在分布式系统中提供追踪解决方案并且兼容支持了zipkin
- Quickstart · OpenZipkin
https://search.maven.org/remote_content?g=io.zipkin.java&a=zipkin-server&v=LATEST&c=exec
二、完整的调用链路
Trace:类似于树结构的Span集合,表示一条调用链路,存在唯一标识
- span:表示调用链路来源,通俗的理解span就是一次请求信息
三、Sleuth使用
1、服务端
服务端下载jar包。2、监控服务模块
写pom
<!--包含了sleuth+zipkin-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
写yaml ```yaml server: port: 8001
spring: application: name: cloud-payment-service
如下
zipkin: base-url: http://localhost:9411 sleuth: sampler:
#采样率值介于0到1之间,1则表示全部采集
probability: 1
```
调用微服务的请求,去 http://localhost:9411/ 查看