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查看调用耗时以及调用信息信息

查看依赖关系

相关推荐
追风筝的人er2 天前
企业管理系统如何实现自定义首页与千人千面?RuoYi Office 给出了完整方案
vue.js·spring boot·spring cloud
三水不滴3 天前
利用SpringCloud Gateway 重试 + 降级解决第三方接口频繁超时问题,提升性能
经验分享·笔记·后端·spring·spring cloud·gateway
知识即是力量ol4 天前
微服务架构:从入门到进阶完全指南
java·spring cloud·微服务·nacos·架构·gateway·feign
Java水解4 天前
【Spring Cloud】优雅实现远程调用-OpenFeign
后端·spring cloud
Remember_9934 天前
SpringCloud:Nacos注册中心
java·开发语言·后端·算法·spring·spring cloud·list
J_liaty4 天前
Spring Cloud 微服务面试高频题
spring cloud·微服务·面试
西门吹雪分身4 天前
SpringCloudGateway过滤器之RequestRateLimiterGatewayFilterFactory
java·redis·spring cloud
vx_Biye_Design4 天前
【关注可免费领取源码】云计算及其应用网络教学系统--毕设附源码35183
java·spring·spring cloud·servlet·eclipse·云计算·课程设计
Coder_Boy_5 天前
Java后端核心技术体系全解析(个人总结)
java·开发语言·spring boot·分布式·spring cloud·中间件
悠闲蜗牛�5 天前
Kubernetes从零到集群:本地Minikube环境搭建与Spring Cloud微服务运维实战
spring cloud·微服务·kubernetes