当前位置:   article > 正文

SpringCloud链路跟踪_springcloud链路追踪

springcloud链路追踪

传送门

SpringMVC的源码解析(精品)
Spring6的源码解析(精品)
SpringBoot3框架(精品)
MyBatis框架(精品)
MyBatis-Plus
SpringDataJPA
SpringCloudNetflix
SpringCloudAlibaba(精品)
Shiro
SpringSecurity
java的LOG日志框架
Activiti(敬请期待)
JDK8新特性
JDK9新特性
JDK10新特性
JDK11新特性
JDK12新特性
JDK13新特性
JDK14新特性
JDK15新特性
JDK16新特性
JDK17新特性
JDK18新特性
JDK19新特性
JDK20新特性
JDK21新特性
其他技术文章传送门入口

前言

本文第一代SpringCloudNetflix和第二代SpringCloudAlibaba都有讲解。参考尚硅谷周阳老师的资料。
下面文章不定期更新中。。。

SpringCloud服务注册中心
SpringCloud服务调用
SpringCloud服务降级
SpringCloud服务网关
SpringCloud服务配置
SpringCloud服务总线
SpringCloud消息驱动
SpringCloud链路跟踪
SpringCloud分布式事务

目前总共就Slueth(Zipkin)一个

一、Slueth概念

Spring Cloud Sleuth是一个分布式跟踪解决方案,用于跟踪分布式系统中的请求。它为每个请求生成唯一的跟踪ID,并将这些ID添加到请求中,以便跟踪请求在不同服务之间的传递情况。

Spring Cloud Sleuth使用了Google的Dapper论文中的一些概念,包括Span和Trace。Span代表了在分布式系统中完成的操作,而Trace则表示一系列相关Span的集合。

使用Spring Cloud Sleuth,开发人员可以追踪一个请求在不同的服务之间的传递情况,并且可以在日志中查看每个请求的跟踪ID。这对于找到分布式系统中的性能问题和故障排除非常有帮助。
在这里插入图片描述

二、Slueth使用

在Spring Cloud中,可以使用Spring Cloud Sleuth来实现分布式追踪。

以下是使用Spring Cloud Sleuth的步骤:

1、添加依赖。

在pom.xml文件中添加Spring Cloud Sleuth依赖,例如:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
  • 1
  • 2
  • 3
  • 4

2、配置日志。

在application.properties(或application.yml)文件中,添加以下配置:

spring.sleuth.sampler.probability: 1.0
  • 1

这将启用Sleuth并设置采样率为100%。

3、 打印日志。

在需要追踪的代码中添加日志输出,例如:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@RestController
public class MyController {

    private static final Logger logger = LoggerFactory.getLogger(MyController.class);

    @GetMapping("/hello")
    public String hello() {
        logger.info("Hello, Sleuth!");
        return "Hello, Sleuth!";
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

4、运行应用程序。

启动应用程序并观察日志输出。Sleuth将为每个请求生成一个唯一的跟踪ID和跟踪标签,以便跟踪请求的路径。

5. 查看追踪信息。

可以使用Zipkin等分布式追踪系统来查看和分析生成的追踪信息。通过配置Sleuth将追踪信息发送到Zipkin服务器。

这些是使用Spring Cloud Sleuth进行分布式追踪的基本步骤。您还可以配置更多的参数来自定义和优化追踪行为。有关更多详细信息,请参阅Spring Cloud Sleuth的官方文档。

三、Zipkin概念

1、概念

在Spring Cloud中,Zipkin是一个开源的分布式跟踪系统。它可以用于跟踪分布式应用的请求链路,并帮助开发人员定位和解决分布式系统中的性能问题。Zipkin可以追踪请求从一个微服务到另一个微服务的传递过程,并记录每个微服务处理请求所花费的时间。通过使用Zipkin,开发人员可以了解到整个请求链路上的每个微服务的响应时间和依赖关系,从而更好地进行性能调优和问题排查。Zipkin还提供了一些附加功能,如错误追踪和服务依赖图可视化等,以帮助开发人员更好地理解和管理分布式应用系统。
在这里插入图片描述

2、安装

下载jar包,然后cmd运行

在这里插入图片描述
在这里插入图片描述
访问地址 http://localhost:9411/zipkin/
在这里插入图片描述

3、入门案例

案例:order80调用payment8001

3.1、改消费者order80

改pom
在这里插入图片描述
改yml
在这里插入图片描述

3.2、改提供者payment8001

改pom
在这里插入图片描述
改yml
在这里插入图片描述

3.3、测试结果在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

四、Zipkin使用

要在SpringCloud中使用Zipkin,你需要以下步骤:

1、服务端依赖

在Spring Boot的pom.xml文件中添加spring-cloud-starter-zipkin依赖:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
  • 1
  • 2
  • 3
  • 4

2、配服务端yml修改

application.yml(或application.properties)文件中配置Zipkin的相关属性:

spring:
  zipkin:
    base-url: http://localhost:9411 # Zipkin服务器的地址
  • 1
  • 2
  • 3

3、启动

启用Zipkin的追踪功能,可以通过添加@EnableZipkinServer注解来实现,例如在Spring Boot的主类上添加注解:

@EnableZipkinServer
@SpringBootApplication
public class ZipkinServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(ZipkinServerApplication.class, args);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

4、客户端依赖

在需要追踪的微服务中,添加Zipkin的客户端依赖:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
  • 1
  • 2
  • 3
  • 4

5、客户端yml修改

在该微服务的application.yml文件中配置Zipkin的相关属性:

spring:
  sleuth:
    sampler:
      percentage: 1.0 # 设置采样比例,1.0表示全部采样
  zipkin:
    base-url: http://localhost:9411 # Zipkin服务器的地址
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

通过以上步骤,你就可以在SpringCloud中使用Zipkin进行分布式追踪了。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/961998
推荐阅读
相关标签
  

闽ICP备14008679号