Sleuth Zipkin
2023年11月18日大约 5 分钟约 900 字
Sleuth/ZipKin 基础
官网
https://github.com/spring-cloud/spring-cloud-sleuth
Sleuth/Zipkin 是什么?
概述
- 在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的的服务节点调用, 来协同产生最后的请求结果,每一个请求都会形成一条复杂的分布式服务调用链路

链路中的任何一环出现高延时或错误都会引起整个请求最后的失败, 因此对整个服务的调用进行链路追踪和分析就非常的重要
Sleuth 和 Zipkin 的简单关系图

Sleuth 提供了一套完整的服务跟踪的解决方案 并兼容 Zipkin
Sleuth 做链路追踪 , Zipkin 做数据搜集/存储/可视化
Sleuth 工作原理
- Span 和 Trace 在一个系统中使用 Zipkin 的过程-图形化

- 表示一请求链路,一条链路通过Trace Id唯一标识 ,Span标识发起的请求信息,各span 通过parent id关联起来
- Trace:类似于树结构的Span集合,表示一条调用链路,存在唯一标识
- Span:基本工作单元,表示调用链路来源,通俗的理解span就是一次请求信息
- spans 的 parent/child 关系图形化

- 小伙伴注意看老师标识的红线,后一个span节点的parentId 指向/记录 了上一个Span 解读
- span就是一次请求信息
- 多个Span集合就构成一条调用链路
- 在span=C 这个节点存在分支
Sleuth/ZipKin-搭建链路监控实例
需求说明
1.在浏览器输入 : http://localhost/member/consumer/get/1 , 会返回对应的结果

- 要求: 通过 Sleuth 和 Zipkin 可以对服务调用链路进行监控, 并在 Zipkin 进行显示(如图)

安装/使用 Zipkin
下载
https://repo1.maven.org/maven2/io/zipkin/java/zipkin-server/2.12.9/
下载得到 : zipkin-server-2.12.9-exec.jar
运行
把 zipkin-server-2.12.9-exec.jar 放到指定的目录 , 比如 D:\Environment\zipkin
进入 cmd , 执行指令运行:java -jar zipkin-server-2.12.9-exec.jar

访问
浏览器输入:http://localhost:9411/zipkin/

服务提供方集成 Sleuth/Zipkin
修改 member-service-provider-10001 的 pom.xml , 增加引入 sleuth+zipkin
<!--引入sleuth+zipkin依赖
1.使用的是版本仲裁
2.starter-zipkin包含了sleuth
-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
修改 member-service-provider-10001 的 appliaction.xml , 指定 Zipkin
spring:
application:
name: member-service-provider #配置应用的名称
#配置sleuth和zipkin
zipkin:
base-url: http://localhost:9411
sleuth:
sampler:
# 采样率 在0-1之间,1表示全部采集
probability: 1
服务消费方集成 Sleuth/Zipkin
修改 member-service-consumer-80 的 pom.xml , 增加引入 sleuth+zipkin
<!--引入sleuth+zipkin依赖
1.使用的是版本仲裁
2.starter-zipkin包含了sleuth
-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
修改 member-service-consumer-80 的 appliaction.xml , 指定 Zipkin
spring:
application:
name: member-service-provider #配置应用的名称
#配置sleuth和zipkin
zipkin:
base-url: http://localhost:9411
sleuth:
sampler:
# 采样率 在0-1之间,1表示全部采集
probability: 1
测试
启动 e-commerce-eureka-server-9001
启动 member-service-provider-10001
启动 member-service-consumer-80
浏览器输入: http://localhost/member/consumer/get/1

查看监控&分析结果
查看 Zipkin : http://localhost:9411/zipkin/
选择某个服务,看结果

查看服务调用的依赖关系
