Sleuth
本专栏学习内容来自尚硅谷周阳老师的视频
有兴趣的小伙伴可以点击视频地址观看
随着微服务越来越多,可能会出现A调B,B调C、D等多重调用的情况,出现问题不易排查。
Spring Cloud Sleuth提供了一套完整的服务跟踪的解决方案,在分布式系统中提供追踪解决方案并且兼容支持了zipkin
Zipkin
下载
可以通过该网址下载jar包,运行即可 —— 点击跳转
下载后通过命令行启动,出现以下图标即启动成功
访问 localhost:9411
可以看到Zipkin的监控页面
术语
- Trace:类似于树结构的Span集合,表示一条调用链路,存在唯一标识
- span:表示调用链路来源,通俗的理解span就是一次请求信息
一条链路通过Trace Id唯一标识,Span标识发起的请求信息,各span通过parent id 关联起来
整个链路的依赖关系如下
使用
为了演示方便,就不重新创建服务了,在原有的8001和80上面修改,通过80来调用8001
添加依赖
这里我们只需要添加zipkin依赖即可,从依赖图上可以看到包含了zipkin以及sleuth
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
修改配置文件
添加以下两项配置,注意http://
必须要加
# zipkin地址
spring.zipkin.base-url=http://localhost:9411
# 采样率值介于 0 到 1 之间,1 则表示全部采集
spring.sleuth.sampler.probability=1
测试
我们通过80多次调用8001服务,在观察Zipkin页面
通过具体的哪次调用点进去之后,可以看到他调用的时间线