> 文章列表 > SpringCloud分布式请求链路跟踪——Sleuth

SpringCloud分布式请求链路跟踪——Sleuth

SpringCloud分布式请求链路跟踪——Sleuth

Sleuth

本专栏学习内容来自尚硅谷周阳老师的视频

有兴趣的小伙伴可以点击视频地址观看

随着微服务越来越多,可能会出现A调B,B调C、D等多重调用的情况,出现问题不易排查。

Spring Cloud Sleuth提供了一套完整的服务跟踪的解决方案,在分布式系统中提供追踪解决方案并且兼容支持了zipkin

Zipkin

下载

可以通过该网址下载jar包,运行即可 —— 点击跳转

下载后通过命令行启动,出现以下图标即启动成功

SpringCloud分布式请求链路跟踪——Sleuth

访问 localhost:9411可以看到Zipkin的监控页面

SpringCloud分布式请求链路跟踪——Sleuth

术语

  • Trace:类似于树结构的Span集合,表示一条调用链路,存在唯一标识
  • span:表示调用链路来源,通俗的理解span就是一次请求信息

一条链路通过Trace Id唯一标识,Span标识发起的请求信息,各span通过parent id 关联起来

SpringCloud分布式请求链路跟踪——Sleuth

整个链路的依赖关系如下

SpringCloud分布式请求链路跟踪——Sleuth

使用

为了演示方便,就不重新创建服务了,在原有的8001和80上面修改,通过80来调用8001

添加依赖

这里我们只需要添加zipkin依赖即可,从依赖图上可以看到包含了zipkin以及sleuth

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>

SpringCloud分布式请求链路跟踪——Sleuth

修改配置文件

添加以下两项配置,注意http://必须要加

# zipkin地址
spring.zipkin.base-url=http://localhost:9411
# 采样率值介于 0 到 1 之间,1 则表示全部采集
spring.sleuth.sampler.probability=1

测试

我们通过80多次调用8001服务,在观察Zipkin页面

SpringCloud分布式请求链路跟踪——Sleuth

通过具体的哪次调用点进去之后,可以看到他调用的时间线

SpringCloud分布式请求链路跟踪——Sleuth