1.什么是分布式链路追踪
随着分布式服务架构的流行,特别是微服务等设计理念在系统中的应用,业务的调用链越来越复杂。相关产品还有skywalking、zipkin
分布式服务跟踪是整个分布式系统中跟踪一个用户请求的过程(包括数据采集、数据传输、数据存储、数据分析、数据可视化),捕获此类跟踪让我们构建用户交互背后的整个调用链的视图,这是调试和监控微服务的关键工具。Spring Cloud Sleuth是Spring Cloud为分布式服务跟踪提供的解决方案,有了它,我们可以:
- 提供链路追踪,故障快速定位:可以通过调用链结合业务日志快速定位错误信息。
- 可视化各个阶段耗时,进行性能分析
- 各个调用环节的可用性、梳理服务依赖关系以及优化
- 数据分析,优化链路:可以得到用户的行为路径,汇总分析应用在很多业务场景。
2.快速使用springcloud-sleuth
2.1 springboot启动日志
springboot项目启动时日志如下:
当有请求进入时,控制台打印日志如下:(本项目没有配置spring.application.name)
2.2 日志含义
第一个值:trace1,它表示应用的名称,也就是配置文件spring.application.name的值。
第二个值:454445a6a7d9ea44,它是SpringCloudSleuth生成的一个ID,称为Trace ID,它用来标识一条请求链路,一条请求链路中包含一个Trace ID,多个Span ID。
第三个值:912a7c66c17214e0,它是SpringCloudSleuth生成的另外一个ID,称为Span ID,它表示一个基本的工作单元,比如发送一个http请求。
第四个值:false,表示是否要将该信息输出到Zipkin等服务中来收集和展示。
3. 集成与应用
3.1 与zipkin整合
提供web页面,可以方便快捷的展示请求的完整生命周期和链式调用,便于快速定位、分析、解决问题
3.2 与ELK日志收集系统整合
日志收集系统,便于进行日志的收集、分析与计算
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。