• 作者:老汪软件技巧
  • 发表时间:2024-10-13 07:01
  • 浏览量:

springCloudSleuth简介链路追踪?

什么是链路追踪?就是将一次分布式请求还原成调用链路,将一次分布式请求的调用情况集中展示,如各个服务节点的耗时、具体请求的服务器、各节点的请求状态等,主要是用于分布式系统进行问题定位

SpringCloudSleuth

SpringCloudSleuth是SpringCloud提供的一套分布式服务跟踪的解决方案,并且支持zipkin

术语链路示意图

一条链路根据TraceId唯一标识,SpanId标识发起的请求信息,各span通过parentId串联起来

TraceId类似于树结构的Span集合,表示一条调用链路,作为链路的全局唯一标识

Span表示调用链路的来源,之间存在着父子关系,上游span是下游span的父span,一个span就是一次请求信息

zipkin

Zipkin是Twitter开源的分布式跟踪系统,主要功能是收集系统的时序数据,从而追踪微服务架构的系统延时等问题。架构中包含Reporter,Transport,Colletor,Storage,API,UI几个部分

Reporter

集成在每个服务的代码中,负责Span的生成,带内数据(traceid等)的传递,带外数据(span)的上报,采样控制

Transport

为带外数据上报的通道,zipkin支持http和kafka两种方式

Colletor

负责接收带外数据,并插入到集中存储中

Storage

为存储组件,适配底层的存储系统,zipkin提供默认的in-memory存储,并支持Mysql,Cassandra,ElasticSearch存储系统

API

提供查询、分析和上报链路的接口。接口的定义见zipkin-api

UI

用于展示页面展示

依赖


<dependency>
    <groupId>org.springframework.cloudgroupId>
    <artifactId>spring-cloud-starter-zipkinartifactId>
dependency>

配置

spring:
  # 链路跟踪
  zipkin:
    base-url: http://localhost:9411 #zipkin的地址
  sleuth:
    sampler:
      probability: 1 #采样率,1表示全部采集

之后进行访问就可以在zipkin中看到请求的调用链路了

参考文献