Spring Cloud Sleuth(Micrometer Tracing +Zipkin)

分布式链路追踪

分布式链路追踪技术要解决的问题,分布式链路追踪(Distributed Tracing),就是将一次分布式请求还原成调用链路,进行日志记录,性能监控并将一次分布式请求的调用情况集中展示。比如各个服务节点上的耗时、请求具体到达哪台机器上、每个服务节点的请求状态等等

Micrometer Tracing 版本支持

目前最新版本的sleuth 已经迁移到Micrometer Tracing spring-cloud-sleuth,以及支持springboot版本,sleuth 已经不支持spring boot 3.x版本,同时Micrometer也兼容支持zipkin展现

链路追踪原理

链路通过TraceId唯一标识,Span标识发起的请求信息,各span通过parent id 关联起来

Zipkin

Zipkin是一种分布式链路跟踪系统图形化的工具 ,Zipkin 是 Twitter 开源的分布式跟踪系统,能够收集微服务运行过程中的实时调用链路信息,并能够将这些调用链路信息展示到Web图形化界面上供开发人员分析,开发人员能够从ZipKin中分析出调用链路中的性能瓶颈,识别出存在问题的应用程序,进而定位问题和解决问题,官网zipkin

Micrometer 负责采集数据,Zipkin负责页面展示

下载zipkin

https://zipkin.io/pages/quickstart.html

运行zipkin

访问http://localhost:9411/zipkin/

整合分布式链路追踪

引入依赖,我这里有父工程,版本号在父工程中指定,在子模块将这个依赖包引入即可

XML 复制代码
  <properties>
        <micrometer-tracing.version>1.2.0</micrometer-tracing.version>
        <micrometer-observation.version>1.12.0</micrometer-observation.version>
        <feign-micrometer.version>12.5</feign-micrometer.version>
        <zipkin-reporter-brave.version>2.17.0</zipkin-reporter-brave.version>
  </properties>

  <dependencyManagement>
   <dependencies>
     <dependency>
                <groupId>io.micrometer</groupId>
                <artifactId>micrometer-tracing-bom</artifactId>
                <version>${micrometer-tracing.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--micrometer-tracing指标追踪  1-->
            <dependency>
                <groupId>io.micrometer</groupId>
                <artifactId>micrometer-tracing</artifactId>
                <version>${micrometer-tracing.version}</version>
            </dependency>
            <!--micrometer-tracing-bridge-brave适配zipkin的桥接包 2-->
            <dependency>
                <groupId>io.micrometer</groupId>
                <artifactId>micrometer-tracing-bridge-brave</artifactId>
                <version>${micrometer-tracing.version}</version>
            </dependency>
            <!--micrometer-observation 3-->
            <dependency>
                <groupId>io.micrometer</groupId>
                <artifactId>micrometer-observation</artifactId>
                <version>${micrometer-observation.version}</version>
            </dependency>
            <!--feign-micrometer 4-->
            <dependency>
                <groupId>io.github.openfeign</groupId>
                <artifactId>feign-micrometer</artifactId>
                <version>${feign-micrometer.version}</version>
            </dependency>
            <!--zipkin-reporter-brave 5-->
            <dependency>
                <groupId>io.zipkin.reporter2</groupId>
                <artifactId>zipkin-reporter-brave</artifactId>
                <version>${zipkin-reporter-brave.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

yaml文件配置

XML 复制代码
management:
  zipkin:
    tracing:
      endpoint: http://localhost:9411/api/v2/spans
  tracing:
    sampling:
      probability: 1.0 #采样率默认为0.1(0.1就是10次只能有一次被记录下来),值越大收集越及时。

访问测试

启动服务,确保已经向nacos注册,使用openFeign进行远程调用测试

消费者服务访问提供者服务,查看链路追踪

点击show查看调用耗时以及调用信息信息

查看依赖关系

相关推荐
慧一居士14 小时前
Feign的GET请求如何传递对象参数?
java·spring cloud
我登哥MVP18 小时前
SpringCloud Alibaba 核心组件解析:服务链路追踪
java·spring boot·后端·spring·spring cloud·java-ee·maven
慧一居士20 小时前
SpringCloud 微服务Feigin 用的完整调用端和被调用的示例
java·spring cloud
地瓜伯伯1 天前
从MESI缓存一致性协议讲透synchronized的底层
java·spring boot·spring·spring cloud·微服务·springcloud
Devin~Y1 天前
大厂 Java 面试实录:从音视频内容社区到 AI RAG 的全链路技术设计
java·spring boot·redis·spring cloud·微服务·kafka·音视频
worilb1 天前
Spring Cloud 学习与实践(9):Gateway + JWT 统一鉴权
学习·spring cloud·gateway
山东点狮信息科技有限公司1 天前
企业级 MES 制造执行系统架构设计与实践
spring cloud·性能优化·系统架构·策略模式·点狮
韩小兔修媛史2 天前
SpringCloud八股文面试
spring·spring cloud·面试
shushangyun_2 天前
批发商城系统源码多少钱?2026最新报价一览
java·开发语言·人工智能·spring·spring cloud
山东点狮信息科技有限公司2 天前
点狮OA-企业级 OA 办公自动化系统架构设计与实践
spring cloud·微服务·性能优化·架构·系统架构