SpringCloud搭建微服务之Micrometer分布式链路追踪

1. 概述

由于Spring Cloud Sleuth最新版本只支持Spring Boot 2.7.x,核心项目已经迁移到Micrometer Traceing项目,Spring Boot 3.x版本要实现分布式链路追踪需要集成Micrometer。更多详情可以参阅Micrometer官网

本文将以Spring Boot 3.2.x和Spring Cloud 2023.0.x版本和JDK 17实现分布式链路追踪,有需要了解Spring Boot 2.7.x版本实现分布式链路追踪的小伙伴可以参阅SpringCloud搭建微服务之Sleuth分布式请求链路跟踪

2. 搭建搭建Zipkin Server

SpringCloud搭建微服务之Sleuth分布式请求链路跟踪这篇文章第二部分已经详细介绍了如何下载zipkin jar包和安装的步骤,新的版本下载就不再赘述,需要注意的是,最新版zipkin需要本地安装JDK 17。下载后,使用命令java -jar zipkin-server-3.1.1-exec.jar启动zipkin server即可

启动zipkin server后,在浏览器输入http://localhost:9411/zipkin进入zipkin首页

3. 微服务集成Micrometer

3.1. 引入核心依赖

在服务提供端和服务消费端都引如以下依赖

xml 复制代码
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!--指标追踪-->
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-tracing</artifactId>
</dependency>
<!--适配zipkin的桥接包-->
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-tracing-bridge-brave</artifactId>
</dependency>
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-observation</artifactId>
</dependency>
<dependency>
    <groupId>io.github.openfeign</groupId>
    <artifactId>feign-micrometer</artifactId>
</dependency>
<dependency>
    <groupId>io.zipkin.reporter2</groupId>
    <artifactId>zipkin-reporter-brave</artifactId>
</dependency>

3.2. 编写application.yml

yaml 复制代码
management:
  zipkin:
    tracing:
      endpoint: http://localhost:9411/api/v2/spans
  tracing:
    sampling:
      probability: 1.0 #采样率默认0.1(10次只能有一次被记录),值越大手机越及时

4. 验证

分别启动服务提供端和服务消费端微服务

刷新zipkin管理端,可以看到调用请求

点击Dependencies,可以查看调用链路

相关推荐
Norris Huang9 小时前
Kafka Connect 与 Flink CDC 写入 Iceberg:Upsert 的代价,以及 S3 Tables 的真正价值
分布式·flink·kafka
Thomas.Sir9 小时前
第34课:微服务Docker容器化部署 & 生产环境上线
spring cloud·docker·微服务
我就是不信9 小时前
集群高并发环境下如何保证分布式唯一全局ID生成?
分布式
黄俊懿1 天前
【架构师从入门到进阶】第六章:服务集群优化——第八节:线程数公式
java·服务器·数据库·分布式·性能优化·架构·系统架构
wangjialelele1 天前
一文梳理 Spring Cloud 核心组件:Eureka、Nacos、OpenFeign、LoadBalancer 与 Gateway
java·spring boot·spring·spring cloud·微服务·nacos
草莓熊Lotso1 天前
【C++ 基于微服务的即时通讯系统】Elasticsearch 从安装到 C++ 客户端二次封装全落地
linux·网络·数据库·c++·elasticsearch·微服务
大菠萝爱上小西瓜1 天前
基于 Spark + Iceberg 湖仓一体的 Netflix 流媒体用户行为全链路数仓与 ALS 智能推荐决策系统(含穿透下钻大屏)
大数据·分布式·spark
吴建旭 智宅焕1 天前
智能家居售后服务体系的架构设计:分布式售后风险的集中式兜底方案
分布式·智能家居
银河技术1 天前
从脚本到 Operator:用 Go 构建可靠的微服务自动扩缩容控制器
开发语言·微服务·golang
草莓熊Lotso2 天前
【C++ 基于微服务的即时通讯系统】etcd + brpc 从安装到服务注册发现全链路实战
网络·数据库·c++·redis·微服务·etcd