链路追踪和分析-Sleuth+Zipkin-微服务核心组件【分布式微服务笔记06】
链路追踪和分析-Sleuth+Zipkin-微服务核心组件【分布式微服务笔记06】
链路追踪和分析-Sleuth+Zipkin
- 在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的的服务节点调用, 来协同产生最后的请求结果,每一个请求都会形成一条复杂的分布式服务调用链路
- 链路中的任何一环出现高延时或错误都会引起整个请求最后的失败, 因此对整个服务的调用进行链路追踪和分析就非常的重要
Sleuth+Zipkin 结构图
Sleuth 提供了一套完整的服务跟踪的解决方案并兼容Zipkin
Sleuth 做链路追踪, Zipkin 做数据搜集/存储/可视化
Sleuth 工作原理
- REQUEST :表示请求的链路,一条链路通过Trace Id唯一标识, Span标识发起的请求信息,各span通过parent id【父id/前一个id】关联起来
- Trace:类似于树结构的Span集合,表示一条调用链路,存在唯一标识
- Span:基本工作单元,表示调用链路来源,通俗的理解span就是一次请求信息
微服务模块集成Sleuth
-
添加依赖
<!--引入sleuth + zipkin--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zipkin</artifactId> </dependency>
-
配置application.yml文件
# 配置sleuth zipkin zipkin: base-url: http://localhost:9411 sleuth: sampler: # 采样率 在0-1之间,1表示数据全部采集 probability: 1
-
查看界面/仪表盘
- Sleuth+Zipkin 可以查看一次调用链路的深度,以及该链路包含请求, 各个请求耗时找到请求瓶颈,为优化提供依据