SpringCloud(九)Sleuth 分布式请求链路跟踪


前言

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

SpringCloud Sleuth 提供了一套完整的服务跟踪的解决方案

在分布式系统中提供追踪解决方案并且兼容支持了 zipkin

一、安装 zipkin-server

1.1 下载

在这里插入图片描述
下载 2.12.9 版本的 zipkin

通过 cmd 运行 java -jar zipkin-server-2.12.9-exec.jar

控制台打印
在这里插入图片描述
可以看到 zipkin 默认使用的是 9411 端口。 访问 http://localhost:9411/zipkin
在这里插入图片描述

1.2 流程图

在这里插入图片描述
Span Id 表示当前服务, ParentId 为上一层 服务
Trace 类似于树结构的 Span 集合, 表示一条调用链路 , 存在唯一标识
span 表示调用链路来源, 通俗的理解就是 span 就是一次请求信息

二、使用步骤

2.1 直接修改之前的模块 sgg-consumer80 引入依赖

pom.xml

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

修改 yml 文件

server:
  port: 80
spring:
  application:
    name: ssg-consumer-service
  zipkin:
    base-url: http://127.0.0.1:9411 # 指定 zipkin 的服务地址
  sleuth:
    sampler:
      probability: 1 # 采样率, 介于 0  - 1 之间。 0 不采集, 1 全部采集
eureka:
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://localhost:7001/eureka,http://localhost:7002/eureka
  instance:
    instance-id: sgg-consumer80
    prefer-ip-address: true

修改sgg-payment8001sgg-payment8002
pom.xml

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

修改 yml 文件

spring:
  application:
    name: sgg-payment-service
  zipkin:
    base-url: http://127.0.0.1:9411 # 配置 zipkin 的地址
  sleuth:
    sampler:
      probability: 1 # # 采样率, 介于 0  - 1 之间。 0 不采集, 1 全部采集

接口依旧使用之前的老接口。 顺序启动 7001,7002,8001,8002,80

访问 接口
在这里插入图片描述
这个时候查看我们的 Zipkin 的控制台

在这里插入图片描述
可以看到我们的请求链路已经添加到 控制台中了
在这里插入图片描述
点进去 ,我们点击该链路数据,可以看到一个 Trace 明细。如下图所示:
在这里插入图片描述
再之后,点击两个Span,可以看到每一个的Span明细
在这里插入图片描述
在这里插入图片描述

总结 感谢B站尚硅谷的老师 ~~~

参考文章 : 芋道源码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值