【Spring Cloud Sleuth 分布式链路跟踪】 —— 每天一点小知识

这篇具有很好参考价值的文章主要介绍了【Spring Cloud Sleuth 分布式链路跟踪】 —— 每天一点小知识。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【Spring Cloud Sleuth 分布式链路跟踪】 —— 每天一点小知识

                                                                              💧 S p r i n g C l o u d S l e u t h 分布式链路跟踪 \color{#FF1493}{Spring Cloud Sleuth 分布式链路跟踪} SpringCloudSleuth分布式链路跟踪💧          


🌷 仰望天空,妳我亦是行人.✨
🦄 个人主页——微风撞见云的博客🎐
🐳 《数据结构与算法》专栏的文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺
💧 《Java学习笔记》专栏的文章是本人在Java学习中总结的一些知识点~ 💐
🥣 《每天一点小知识》专栏的文章可以丰富你的知识库,滴水成河~ 🌊
🎐 《Redis》专栏的文章是在学习Redis时,整理的笔记与记录的思考~ 🥏
🥕 《RabbitMQ》专栏的文章是在学习尚硅谷课程时整理的笔记,方便复习巩固~ 🍑
🪁 希望本文能够给读者带来一定的帮助~🌸文章粗浅,敬请批评指正!🐥



当然可以!以下是关于 “Spring Cloud Sleuth 分布式链路跟踪” 的博客文章:

🐳Spring Cloud Sleuth 分布式链路跟踪

在微服务架构中,系统由多个服务组成,服务之间的调用关系错综复杂。当一个请求从一个服务发起并经过多个服务调用时,排查问题和分析性能瓶颈变得非常困难。为了解决这个问题,Spring Cloud Sleuth 提供了一种分布式链路跟踪的解决方案。本文将介绍 Spring Cloud Sleuth 的概念和用法,并通过一个案例来说明如何搭建链路监控。


Spring Cloud Sleuth 概述

为什么需要分布式链路跟踪?

  💧在微服务架构中,一个用户请求往往需要经过多个服务的调用才能完成。当请求出现问题或者需要排查性能问题时,我们需要追踪整个请求的路径,并找到请求的每个阶段所消耗的时间。这就是分布式链路跟踪的作用,它能够帮助我们快速定位问题,并进行性能分析。

Spring Cloud Sleuth 是什么?

  💧Spring Cloud Sleuth 是 Spring Cloud 生态系统中的一个组件,用于实现分布式系统的请求跟踪。它基于 Google 的开源项目 Dapper 实现,并集成了 Zipkin 分布式跟踪系统。Spring Cloud Sleuth 提供了一套标准化的解决方案,通过在请求中添加唯一的标识符和跟踪信息,实现了整个分布式系统的链路追踪和性能分析。

Spring Cloud Sleuth 能解决什么问题?

  • 请求追踪:Spring Cloud Sleuth 为每个请求生成唯一的跟踪标识符,并在请求的每个阶段添加跟踪信息。这使得我们能够准确追踪请求经过的每个服务和调用路径。

  • 性能分析:通过收集和聚合跟踪信息,Spring Cloud Sleuth 可以提供性能分析功能。我们可以了解每个请求的处理时间和耗时情况,识别性能瓶颈并进行优化。

  • 故障排查:当一个请求出现问题时,我们可以通过分析跟踪信息来定位问题。Spring Cloud Sleuth 提供了请求的完整调用链,可以帮助我们快速定位故障点并进行排查。


  💧现在,让我们一步一步搭建链路监控,并使用 Docker 启动 Zipkin 作为跟踪系统 ↓

搭建链路监控步骤

1. Zipkin 的介绍与安装

Zipkin 是什么?

Zipkin 是一个分布式跟踪系统,用于收集、存储和展示分布式系统中的跟踪数据。它提供了一个用户友好的界面,用于可视化分析请求的调用链路和性能指标。

安装 Zipkin

  💧首先,我们需要使用 Docker 安装和运行 Zipkin。确保你已经安装了 Docker。

  💧在终端或命令行中执行以下命令来下载并运行 Zipkin 容器:

docker run -d -p 9411:9411 openzipkin/zipkin

  💧这将下载并运行 Zipkin 容器,并将容器的 9411 端口映射到本地的 9411 端口。

2. 服务提供者

  💧我们将创建一个简单的 Spring Boot 服务作为示例的服务提供者。首先,创建一个新的 Spring Boot 项目,添加以下依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>

  💧application.properties 文件中,添加以下配置:

spring.application.name=service-provider

  💧创建一个 REST Controller 类,用于处理请求:

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloWorldController {

    @GetMapping("/hello")
    public String hello() {
        return "Hello, World!";
    }
}

  💧在启动类上添加 @EnableZipkinServer 注解,以启用 Zipkin 客户端:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import zipkin.server.internal.EnableZipkinServer;

@SpringBootApplication
@EnableZipkinServer
public class ZipkinServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(ZipkinServerApplication.class, args);
    }
}

3. 服务消费者

接下来,我们创建一个使用服务提供者的服务消费者。创建一个新的 Spring Boot 项目,添加以下依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>

application.properties 文件中,添加以下配置:

spring.application.name=service-consumer
spring.zipkin.base-url=http://localhost:9411

创建一个 REST Controller 类,用于向服务提供者发送请求:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.sleuth.Tracer;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

@RestController
public class ConsumerController {

    @Autowired
   

 private Tracer tracer;

    @GetMapping("/consume")
    public String consume() {
        // 创建 RestTemplate 对象
        RestTemplate restTemplate = new RestTemplate();
        // 发送请求
        ResponseEntity<String> response = restTemplate.getForEntity("http://localhost:8080/hello", String.class);
        // 输出响应结果
        String result = response.getBody();
        // 打印当前跟踪信息
        System.out.println("TraceId: " + tracer.currentSpan().context().traceId());
        return result;
    }
}

在启动类上添加 @EnableZipkinServer 注解,以启用 Zipkin 客户端:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import zipkin.server.internal.EnableZipkinServer;

@SpringBootApplication
@EnableZipkinServer
public class ZipkinServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(ZipkinServerApplication.class, args);
    }
}

4. 启动服务并进行访问

  💧首先,启动服务提供者和服务消费者的应用程序。确保两个应用程序都成功启动。

  💧然后,使用浏览器或者 API 工具访问服务消费者的 /consume 路径,例如:http://localhost:8081/consume。

  💧在 Zipkin 界面中,你应该可以看到请求的跟踪信息和调用链路。


总结

通过 Spring Cloud Sleuth 和 Zipkin,我们可以方便地实现分布式系统的链路跟踪和性能分析。本文介绍了 Spring Cloud Sleuth 的概念和用法,并通过一个案例演示了如何搭建链路监控。我们通过 Docker 安装了 Zipkin,并创建了一个简单的服务提供者和消费者。最后,我们使用 Zipkin 来查看请求的跟踪信息和调用链路。


【Spring Cloud Sleuth 分布式链路跟踪】 —— 每天一点小知识


🐳结语

🐬初学一门技术时,总有些许的疑惑,别怕,它们是我们学习路上的点点繁星,帮助我们不断成长。

🐟积少成多,滴水成河。文章粗浅,希望对大家有帮助!文章来源地址https://www.toymoban.com/news/detail-501060.html

到了这里,关于【Spring Cloud Sleuth 分布式链路跟踪】 —— 每天一点小知识的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringCloud——分布式请求链路跟踪Sleuth

    SpringCloud从F版已不需要自己构建Zipkin Server,只需要调用jar包即可 https://dl.bintray.com/oenzipkin/maven/io/zipkin/java/zipkin-server/ 下载:zipkin-server-2.12.9-exec.jar 运行:java -jar zipkin-server-2.12.9-exec.jar 浏览器访问: ================================================================================ 一条链路通过

    2024年02月16日
    浏览(30)
  • springcloud sleuth分布式请求链路跟踪

    在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的的服务节点调用来协同产生最后的请求结果,每一个前段请求都会形成一条复杂的分布式服务调用链路,链路中的任何一环出现高延时或错误都会引起整个请求最后的失败. Spring Cloud Sleuth提供了一套完

    2024年01月16日
    浏览(31)
  • SpringCloud入门实战(十二)-Sleuth+Zipkin分布式请求链路跟踪详解

    📝 学技术、更要掌握学习的方法,一起学习,让进步发生 👩🏻 作者:一只IT攻城狮 ,关注我,不迷路 。 💐学习建议:1、养成习惯,学习java的任何一个技术,都可以先去官网先看看,更准确、更专业。 💐学习建议:2、然后记住每个技术最关键的特性(通常一句话或者

    2024年02月13日
    浏览(37)
  • Spring Cloud Alibaba 最新版本(基于Spring Boot 3.1.0)整合完整使用及与各中间件集成 Sleuth+Zipkin集成分布式链路追踪

    目录 前言 源码地址 官方中文文档 使用版本 spring Spring Boot 3.1.0 中间件 使用到的组件与功能 环境安装 虚拟机 nexus nacos 集成过程 工程搭建 父工程搭建 子工程 服务集成 nacos集成 配置文件 服务注册与发现-discovery 服务注册 启动 服务发现 测试 配置管理-config 新增配置  测试

    2024年02月12日
    浏览(36)
  • 【Spring Cloud Alibaba Seata 处理分布式事务】——每天一点小知识

                                                                                   💧 S p r i n g C l o u d A l i b a b a S e a t a 处理分布式事务 color{#FF1493}{Spring Cloud Alibaba Seata 处理分布式事务} Sp r in g Cl o u d A l ibaba S e a t a 处理分布式事务 💧

    2024年02月12日
    浏览(30)
  • 【分布式链路追踪技术】sleuth+zipkin

    目录 1.概述 2.搭建演示工程 3.sleuth 4.zipkin 5.插拔式存储 5.1.存储到MySQL中 5.2.用MQ来流量削峰 6.联系作者 当采用分布式架构后,一次请求会在多个服务之间流转,组成单次调用链的服务往往都分散在不同的服务器上。这就会带来一个问题: 故障难以溯源。 发起请求,然后请求

    2024年02月04日
    浏览(27)
  • SpringBoot 如何使用 Sleuth 进行分布式跟踪

    在现代分布式应用程序中,跟踪请求和了解应用程序的性能是至关重要的。Spring Boot Sleuth是一个分布式跟踪解决方案,它可以帮助您在分布式系统中跟踪请求并分析性能问题。本文将介绍如何在Spring Boot应用程序中使用Sleuth进行分布式跟踪。 Spring Boot Sleuth是Spring Cloud的一部分

    2024年02月07日
    浏览(29)
  • 基于Spring Cloud Alibaba+Skywalking的分布式链路追踪设计

    胡弦,视频号2023年度优秀创作者,互联网大厂P8技术专家,Spring Cloud Alibaba微服务架构实战派(上下册)和RocketMQ消息中间件实战派(上下册)的作者,资深架构师,技术负责人,极客时间训练营讲师,四维口袋KVP最具价值技术专家,技术领域专家团成员,2021电子工业出版社年度优

    2024年04月22日
    浏览(26)
  • 全面掌握 Jaeger 分布式调用链路跟踪理论和实战,Go 为所有使用 go-resty 库发起 HTTP 请求集成链路跟踪 jaeger(附源码)

    全面掌握 Jaeger 分布式调用链路跟踪理论和实战,Go 为所有使用 go-resty 库发起 HTTP 请求集成链路跟踪 jaeger(附源码)。 介绍一个开源的分布式跟踪系统 Jaeger,首先从理论基础知识开始学习,将学习如何在 HTTP 请求中集成链路跟踪,以及如何在 GORM 框架实现,最后学习 go-ze

    2024年02月13日
    浏览(35)
  • Spring Cloud【分组消费、为什么需要链路追踪 、Spring Cloud Sleuth是什么、微服务集成Sleuth实现链路打标】(十二)

      目录 消息驱动_分组消费 分布式请求链路追踪_为什么需要链路追踪 

    2024年02月14日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包