SleuthZipkin分布式链路请求跟踪【SpringBoot实战配置】详细教程

简介

在分布式系统中,微服务有多个,服务之间调用关系也比较复杂,如果有的微服务网络或者服务器出现问题会导致服务提供失败,如何快速便捷的去定位出现问题的微服务,SpringCloud Sleuth 给我们提供了解决方案,它集成了Zipkin、HTrace 链路追踪工具,用服务链路追踪来快速定位问题。Zipkin使用较多。Zipkin 主要由四部分构成:收集器、数据存储、查询以及 Web 界面。Zipkin 的收集器负责将各系统报告过来的追踪数据进行接收;而数据存储默认使用 Cassandra,也可以替换为 MySQL;查询服务用来向其他服务提供数据查询的能力,而 Web 服务是官方默认提供的一个图形用户界面。

Sleuth Zipkin下载启动

  1. Zipkin-server 下载地址 : zipkin-server
  2. 运行命令 : java - jar 文件名
  3. 如图
    在这里插入图片描述

访问Zipkin控制台

  1. Zipkin默认端口号 : 9411
  2. 浏览器地址栏输入 : http://localhost:9411/zipkin/ 即可访问
  3. 如图
    在这里插入图片描述
  4. 由于项目没有整合Zipkin,所有Zipkin控制台没有要进行追踪的微服务。

Zipkin术语

在这里插入图片描述

  1. Span:基本工作单元,例如,在一个新建的span中发送一个RPC等同于发送一个回应请求给RPC,span通过一个64位ID唯一标识,trace以另一个64位ID表示,span还有其他数据信息,比如摘要、时间戳事件、关键值注释(tags)、span的ID、以及进度ID(通常是IP地址),span在不断的启动和停止,同时记录了时间信息,当你创建了一个span,你必须在未来的某个时刻停止它。 可以简单理解为一次请求到响应的信息

  2. Trace:一系列spans组成的一个树状结构,例如,如果你正在跑一个分布式大数据工程,你可能需要创建一个trace。

  3. Annotation:用来及时记录一个事件的存在,一些核心annotations用来定义一个请求的开始和结束 :

  4. Client Sent : 客户端发起一个请求,这个annotion描述了这个span的开始。Server Received -服务端获得请求并准备开始处理它,如果将其sr减去cs时间戳便可得到网络延迟。

  5. Server Sent -注解表明请求处理的完成(当请求返回客户端),如果ss减去sr时间戳便可得到服务端需要的处理请求时间

  6. Client Received : 表明span的结束,客户端成功接收到服务端的回复,如果cr减去cs时间戳便可得到客户端从服务端获取回复的所有所需时间

整合Zipkin

  1. 在服务模块, pom文件添加Zipkin依赖
<!-- 引入 zipkin 的依赖 -->
 <dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-zipkin</artifactId>
   <version>2.2.3.RELEASE</version>
 </dependency>
  1. yml文件配置zipkin
spring:
  zipkin:
    # 当前服务整合zipkin,会将span执行的过程数据交给zipkin服务处理
    base-url: http://localhost:9411     
    sleuth:
      sampler:
        # 采样率0~1,值越大收集数据越多
        probability: 1
  1. 用户模块整合Zipkin 步骤配置和服模块务整合Zipkin一样
  2. 之后运行即可查看控制台服务链路追踪
  3. 查看依赖关系如图
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智汇探长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值