SpringCloud Sleuth实现分布式请求链路跟踪流程详解

 更新时间:2022年11月04日 10:17:57   作者:小钟要学习!!!  
这篇文章主要介绍了SpringCloud Sleuth实现分布式请求链路跟踪流程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧

1、概念

Git官网地址:https://github.com/spring-cloud/spring-cloud-sleuth

官网地址:https://spring.io/projects/spring-cloud-sleuth

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

Spring Cloud Sleuth提供了一套完整的服务跟踪的解决方案,在分布式系统中提供追踪解决方案并且兼容支持了zipkin

2、搭建链路监控步骤

2.1、zipkin

官方地址:https://zipkin.io/

下载地址:https://gitcode.net/mirrors/openzipkin/zipkin?utm_source=csdn_github_accelerator

通过命令启动

需要定位到当前目录下

java -jar zipkin-server-2.23.18-exec.jar

浏览器访问:http://127.0.0.1:9411/

监控流程

一条链路通过Trace Id唯一标识,Span标识发起的请求信息,各span通过parent id 关联起来

整个链路的依赖关系:服务一 调用 服务二 ,服务二又分别调用服务三或四

2.2、服务提供者

修改cloud-provider-payment8001服务提供者模块

1、引入pom.xml依赖

<!--包含了sleuth+zipkin-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>

2、添加YAMLA配置文件

spring:
  application:
    name: cloud-payment-service # 指定程序名称
  zipkin: # 链路跟踪
    base-url: http://localhost:9411 # 跟踪后展示的地址
    sleuth:
      sampler:
        #采样率值介于 0 到 1 之间,1 则表示全部采集,一般采用0.5
        probability: 1

3、业务类实现

在8001PaymentController控制器上面添加有个简单的接口,方便链路进行跟踪

/**
 * 请求链路跟踪测试
 * @return
 */
@GetMapping("/zipkin")
public String paymentZipkin()
{
    return "hi ,i'am paymentzipkin server fall back,welcome to atguigu,O(∩_∩)O哈哈~";
}

4、启动项目

  • 启动7001
  • 启动8001

2.3、服务消费者(调用方)

修改cloud-consumer-order80消费者模块

引入依赖

与提供者一样

添加YAML配置文件

spring:
  application:
    name: cloud-order-service # 程序名称
  zipkin: # 链路跟踪
    base-url: http://localhost:9411 # 监控展示地址
    sleuth:
      sampler:
        probability: 1 # 采样率

添加控制器

// ====================> zipkin+sleuth
/**
 * 调用链路跟踪服务接口
 * @return
 */
@GetMapping("/payment/zipkin")
public String paymentZipkin()
{
    String result = restTemplate.getForObject("http://localhost:8001"+"/payment/zipkin/", String.class);
    return result;
}

启动测试

之前启动了7001、8001

启动当前项目80

页面访问:http://localhost/consumer/payment/zipkin

多点击几次产生链路,然后查看链路

查看链路跟踪

链路详情

到此这篇关于SpringCloud Sleuth实现分布式请求链路跟踪流程详解的文章就介绍到这了,更多相关SpringCloud Sleuth内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java循环终止的实现方式总结

    Java循环终止的实现方式总结

    循环是一种重复执行一段代码的结构,Java提供了四种主要的循环结构,本文主要来和大家介绍一下Java循环终止的实现方式,有需要的小伙伴可以参考一下
    2023-10-10
  • SpringBoot中的声明式事务详解

    SpringBoot中的声明式事务详解

    这篇文章主要介绍了SpringBoot中的声明式事务详解,Spring采用统一的机制来处理不同的数据访问技术的事务, Spring的事务提供一个PlatformTransactionManager的接口,不同的数据访问技术使用不同的接口实现,需要的朋友可以参考下
    2023-08-08
  • Spring Boot 2结合Spring security + JWT实现微信小程序登录

    Spring Boot 2结合Spring security + JWT实现微信小程序登录

    这篇文章主要介绍了Spring Boot 2结合Spring security + JWT实现微信小程序登录,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • Java并发编程之StampedLock锁介绍

    Java并发编程之StampedLock锁介绍

    这篇文章主要介绍了Java并发编程之StampedLock锁,StampedLock是并发包里面JDK8版本新增的一个锁,下文更多相关内容需要的小伙伴可以参考一下
    2022-04-04
  • java遍历Map的几种方法分析

    java遍历Map的几种方法分析

    这篇文章主要介绍了java遍历Map的几种方法,结合实例形式分析了使用循环与迭代等方法操作Map遍历的相关技巧,需要的朋友可以参考下
    2016-08-08
  • spring boot利用docker构建gradle项目的实现步骤

    spring boot利用docker构建gradle项目的实现步骤

    这篇文章主要给大家介绍了关于spring boot利用docker构建gradle项目的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用spring boot具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2018-05-05
  • java算法题解LeetCode30包含min函数的栈实例

    java算法题解LeetCode30包含min函数的栈实例

    这篇文章主要为大家介绍了java算法题解LeetCode30包含min函数的栈实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • Java序列化(Serialization) 机制

    Java序列化(Serialization) 机制

    本篇文章是对Java中对象的序列化(Serialization) 机制进行了详细的分析介绍,并附实例,需要的朋友可以参考下
    2016-07-07
  • 解析本地方法映射Java层的数据类型

    解析本地方法映射Java层的数据类型

    这篇文章给大家介绍了本地方法映射Java层的数据类型,包括基础类型映射,引用类型映射等等,对java层数据类型映射相关知识,感兴趣的朋友跟随脚本之家小编一起看看吧
    2018-03-03
  • 使用SpringBoot获取所有接口的路由

    使用SpringBoot获取所有接口的路由

    这篇文章主要介绍了使用SpringBoot获取所有接口的路由方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09

最新评论