本文基于B站尚硅谷2024版springcloud教学视频,主要用于自己学习记录以及分享技术,侵权私删
自己本机环境信息:
- jdk:17.0.10
- springboot:3.2.0
- springcloud:2023.0.0
micrometer
之前行业内使用的分布式链路追踪技术Sleuth进入维护状态,不再更新,为了迎合新版本的jdk和springboot,推荐使用micrometer。
micrometer官网
springcloud的micrometer官方教程
github源码
zipkin
Zipkin是一种分布式链路跟踪系统图形化的工具
,Zipkin 是 Twitter 开源的分布式跟踪系统,能够收集微服务运行过程中的实时调用链路信息,并能够将这些调用链路信息展示到Web图形化界面上供开发人员分析,开发人员能够从ZipKin中分析出调用链路中的性能瓶颈,识别出存在问题的应用程序,进而定位问题和解决问题。
zipkin官网
zipkin安装和运行
官网下载地址
将jar包放到自己的常用目录下,在该目录下打开命令行窗口,运行命令java -jar [jar包名字]
出现上图所示图标则表示运行成功。运行失败可以检查9411端口号是否被占用。
在浏览器输入http://localhost:9411/zipkin/
进入图形化网页,出现如下画面。
micrometer在项目中的引入
1.总父工程引入依赖
需要制定下面四个依赖的版本,版本信息如下:
<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>
本人父工程环境全部依赖版本如下,大家可以参考:
然后引入下面6个依赖
<!--micrometer-tracing-bom导入链路追踪版本中心 1-->
<dependency><groupId>io.micrometer</groupId><artifactId>micrometer-tracing-bom</artifactId><version>${micrometer-tracing.version}</version><type>pom</type><scope>import</scope>
</dependency>
<!--micrometer-tracing指标追踪 2-->
<dependency><groupId>io.micrometer</groupId><artifactId>micrometer-tracing</artifactId><version>${micrometer-tracing.version}</version>
</dependency>
<!--micrometer-tracing-bridge-brave适配zipkin的桥接包 3-->
<dependency><groupId>io.micrometer</groupId><artifactId>micrometer-tracing-bridge-brave</artifactId><version>${micrometer-tracing.version}</version>
</dependency>
<!--micrometer-observation 4-->
<dependency><groupId>io.micrometer</groupId><artifactId>micrometer-observation</artifactId><version>${micrometer-observation.version}</version>
</dependency>
<!--feign-micrometer 5-->
<dependency><groupId>io.github.openfeign</groupId><artifactId>feign-micrometer</artifactId><version>${feign-micrometer.version}</version>
</dependency>
<!--zipkin-reporter-brave 6-->
<dependency><groupId>io.zipkin.reporter2</groupId><artifactId>zipkin-reporter-brave</artifactId><version>${zipkin-reporter-brave.version}</version>
</dependency>
2.子工程微服务模块引入依赖
在每个子工程中直接在pom文件中引入下面五个依赖
<!--micrometer-tracing指标追踪 1-->
<dependency><groupId>io.micrometer</groupId><artifactId>micrometer-tracing</artifactId>
</dependency>
<!--micrometer-tracing-bridge-brave适配zipkin的桥接包 2-->
<dependency><groupId>io.micrometer</groupId><artifactId>micrometer-tracing-bridge-brave</artifactId>
</dependency>
<!--micrometer-observation 3-->
<dependency><groupId>io.micrometer</groupId><artifactId>micrometer-observation</artifactId>
</dependency>
<!--feign-micrometer 4-->
<dependency><groupId>io.github.openfeign</groupId><artifactId>feign-micrometer</artifactId>
</dependency>
<!--zipkin-reporter-brave 5-->
<dependency><groupId>io.zipkin.reporter2</groupId><artifactId>zipkin-reporter-brave</artifactId>
</dependency>
在application.yml文件中添加配置,与spring的配置平级。
# ========================zipkin===================
management:zipkin:tracing:endpoint: http://localhost:9411/api/v2/spanstracing:sampling:probability: 1.0 #采样率默认为0.1(0.1就是10次只能有一次被记录下来),值越大收集越及时。
以上就将micrometer+zipkin完全配置好了,此时如果通过调用端向服务端发送请求,micrometer就会自动追踪链路,同时我们可以通过zipkin的页面查看详细信息。
查看所有请求的链路信息
点击show
具体查看某一个请求的链路信息: