目录

  • 传送门
  • 前言
  • 一、Slueth概念
  • 二、Slueth使用
  • 1、添加依赖。
  • 2、配置日志。
  • 3、 打印日志。
  • 4、运行应用程序。
  • 5. 查看追踪信息。
  • 三、Zipkin概念
  • 1、概念
  • 2、安装
  • 3、入门案例
  • 3.1、改消费者order80
  • 3.2、改提供者payment8001
  • 3.3、测试结果![在这里插入图片描述](https://s2.51cto.com/images/blog/202406/20114020_6673a4a4432ae92377.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
  • 四、Zipkin使用
  • 1、服务端依赖
  • 2、配服务端yml修改
  • 3、启动
  • 4、客户端依赖
  • 5、客户端yml修改



目前总共就Slueth(Zipkin)一个

一、Slueth概念

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

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

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

spring clound 链路追踪 springcloud 链路跟踪原理_spring boot

二、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>

2、配置日志。

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

spring.sleuth.sampler.probability: 1.0

这将启用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!";
    }
}

4、运行应用程序。

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

5. 查看追踪信息。

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

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

三、Zipkin概念

1、概念

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

spring clound 链路追踪 springcloud 链路跟踪原理_spring boot_02

2、安装

下载jar包,然后cmd运行

spring clound 链路追踪 springcloud 链路跟踪原理_java_03


spring clound 链路追踪 springcloud 链路跟踪原理_spring cloud_04


访问地址 http://localhost:9411/zipkin/

spring clound 链路追踪 springcloud 链路跟踪原理_java_05

3、入门案例

案例:order80调用payment8001

3.1、改消费者order80

改pom

spring clound 链路追踪 springcloud 链路跟踪原理_spring cloud_06


改yml

spring clound 链路追踪 springcloud 链路跟踪原理_java_07

3.2、改提供者payment8001

改pom

spring clound 链路追踪 springcloud 链路跟踪原理_spring cloud_08


改yml

spring clound 链路追踪 springcloud 链路跟踪原理_spring boot_09

3.3、测试结果

spring clound 链路追踪 springcloud 链路跟踪原理_Cloud_10

spring clound 链路追踪 springcloud 链路跟踪原理_spring clound 链路追踪_11


spring clound 链路追踪 springcloud 链路跟踪原理_Cloud_12

四、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>

2、配服务端yml修改

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

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

3、启动

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

@EnableZipkinServer
@SpringBootApplication
public class ZipkinServerApplication {

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

4、客户端依赖

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

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

5、客户端yml修改

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

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

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