首页 > 其他分享 >Spring Cloud全解析:链路追踪之springCloudSleuth简介

Spring Cloud全解析:链路追踪之springCloudSleuth简介

时间:2024-10-09 10:22:44浏览次数:8  
标签:span 请求 trace zipkin Spring 链路 springCloudSleuth id Cloud

springCloudSleuth简介

链路追踪?

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

SpringCloudSleuth

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

术语

  • span 跨度:基本工作单元,span使用一个64位的id唯一标识,还包含有描述、时间戳、span 父id等,根span被称为root span,该span的id与trace id相等
  • trace 跟踪:一组共享root span的span组成的树状结构称为trace,trace中的所有span都共享该trace的id
  • annotation 标注:annotation用来记录事件的存在,其中核心annotation用来定义请求的开始和结束
    • CS(Client Sent 客户端发送):客户端发起一个请求,该annotation描述了span的开始
    • SR (Server Received服务端接收):服务器端获得请求并准备处理它,使用SR减去CS时间戳,可以得到网络延迟
    • SS (Server Sent 服务端发送):该annotation表示完成请求处理,使用SS减去SR时间戳,可以得到服务端处理请求的时间
    • CR (Client Received 客户端接收):span结束标识,客户端成功接收到服务端的响应,CR减去CS时间戳,可以得到客户端发送请求到服务器响应的时间

链路示意图

一条链路根据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

用于展示页面展示

依赖
<!-- 链路跟踪  包含sleuth和zipkin -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
配置
spring:
  # 链路跟踪
  zipkin:
    base-url: http://localhost:9411 #zipkin的地址
  sleuth:
    sampler:
      probability: 1 #采样率,1表示全部采集

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

参考文献

标签:span,请求,trace,zipkin,Spring,链路,springCloudSleuth,id,Cloud
From: https://www.cnblogs.com/life-time/p/18453710

相关文章

  • 基于springboot的农场管理平台系统
    本农场管理平台系统基于SpringBoot构建,是一款专为现代化农场设计的综合性管理工具。在设计理念上,以提高农场运营效率、优化资源配置和保障农产品质量为核心目标。系统架构简洁而高效,利用SpringBoot的优势实现快速开发和部署,同时确保系统的稳定性和可扩展性,能够适应......
  • swagger2.9.2 和 springboot3.3.4版本冲突问腿
    swagger2.9.2和springboot3.3.4版本冲突问腿问题描述:当我们使用swagger2.9.2版本的时候,如果恰好我们使用的springboot版本是3.x版本,会出现启动报错的问题解决办法:直接使用swagger3.x版本和springboot3.x版本解决步骤:1.导入swagger3.x版本的maven依赖......
  • Spring Boot 之 Lombok 使用详解
    Lombok是一个Java库,它通过注解自动生成样板代码,例如getter、setter、构造函数、equals()、hashCode()等,从而减少代码冗余,提高开发效率。在SpringBoot项目中使用Lombok可以使代码更加简洁易读。本文将详细介绍Lombok在SpringBoot中的使用。1.添加Lombok依赖......
  • springboot 添加@Test(org.junit.Test) 注解后,idea右键菜单,没有运行项
    网上试了很多办法,包括检查idea的junit插件是否已安装,我安装了也用不了清除idea缓存,也不行。 后来将org.junit.Test换成  org.junit.jupiter.api.Test就可以了。maven引入包(注意这里版本换成5.9.3后不行)<dependency><groupId>org.junit.jupiter</groupI......
  • springboot 游泳馆管理系统-计算机毕业设计源码91863
     目录摘要1绪论1.1研究背景1.2研究意义1.3论文结构与章节安排2 游泳馆管理系统分析2.1可行性分析2.1.1技术可行性分析2.1.2 经济可行性分析2.1.3法律可行性分析2.2系统功能分析2.2.1功能性分析2.2.2非功能性分析2.3 系统用例分析2.4......
  • SpringBoot的摄影服务选购系统-计算机毕业设计源码91794
    摘要随着社会数字化的发展,人们对个性化服务和体验的需求不断增加,摄影服务行业也面临着更多线上服务的需求。摄影服务选购系统应运而生,该系统是一款基于Java语言、SpringBoot框架和MySQL数据库的在线平台,旨在满足日益增长的摄影服务需求。其开发背景源于对摄影服务行业数字化......
  • Spring Boot、MyBatis、MyBatis-Plus 依赖版本对应关系总结
    SpringBoot、MyBatis、MyBatis-Plus依赖版本对应关系总结在使用SpringBoot、MyBatis和MyBatis-Plus时,确保它们的依赖版本兼容是项目正常运行的关键。版本不兼容可能会导致诸如sqlSessionFactory、sqlSessionTemplate未正确配置等错误。因此,合理选择各个依赖的版本......
  • 【Spring Security OAuth2】- 【使用Spring MVC开发RESTful API】 异步处理rest服务
    作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!阶段1、深入多线程阶段2、深入多线程设计模式阶段3、深入juc源码解析阶段4、深入jdk其余源码解析......
  • 【Spring Security OAuth2】- 【使用Spring MVC开发RESTful API】 使用切片拦截rest服
    作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!阶段1、深入多线程阶段2、深入多线程设计模式阶段3、深入juc源码解析阶段4、深入jdk其余源码解析......
  • 【含文档+源码】基于SpringBoot的健身工作室管理系统的设计与实现
    项目背景与意义随着健身行业的快速发展,越来越多的消费者开始注重健康和身材管理,这使得健身房成为了一个蓬勃发展的行业。然而,随着客户数量的不断增加,如何有效管理客户信息,提供个性化服务,以及提升客户满意度,成为了健身房面临的重要挑战。传统的客户信息管理方式往往依赖于纸质......