SpringCloud-Sleuth 分布式请求链路跟踪

Posted 农夫三拳有点疼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringCloud-Sleuth 分布式请求链路跟踪相关的知识,希望对你有一定的参考价值。

Sleutd的作用

在微服务系统中,客户端发起的一个请求在后端系统中可能会经过多个不同的服务节点,当系统变得复杂、庞大,每个前端请求都会形成一条复杂的分布式服务调用链路,链路的任何一个环节出了差错就会导致整个请求的失败

技术图片

Spring Cloud Sleuth 提供了一套完整的服务跟踪的解决方案,并兼容支持了 zipkin,为了方便监控,我们需要安装一下 Zipkin

安装 Zipkin 监控平台

Spring Cloud 从 F 版起就不需要自己构建 Zipkin Server 了,只需要导入 jar 包即可

1、下载:http://dl.bintray.com/openzipkin/maven/io/zipkin/java/zipkin-server/

2、使用 java -jar 命令运行

技术图片

3、浏览器访问 http://localhost:9411/zipkin/,进入如下界面即可

技术图片

zipkin 基本原理

一条链路通过 trace Id 标识,Span 标识发起的请求信息,各个 Span 通过 Parent Id 关联

技术图片

整个链路的依赖关系如下所示:

技术图片

Trance:类似于树结构的 Span 的集合,表示一条调用链路,存在唯一标识

Span:表示调用链路的来源,通俗来说 Span 就是一次请求信息

进行链路监控

需要的依赖(zipkin 中是包含 sleuth 的)

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

添加配置

spring:
  zipkin:
  	# 指定 zipkin 地址
    base-url: http://localhost:9411
  sleuth:
    sampler:
      # 采样率介于 0~1 之间,1表示全部采集
      probability: 1

在服务提供者、消费者上都添加上述配置之后,发送的请求就会被监控了,可以在 zipkin 可视化界面查看详情

技术图片

以上是关于SpringCloud-Sleuth 分布式请求链路跟踪的主要内容,如果未能解决你的问题,请参考以下文章

分布式服务追踪与调用链 Zikpin

分布式服务追踪与调用链 Zikpin

MongoDB学习笔记~监控Http请求的消息链

SkyWalking 分布式追踪系统

rabbitmq+sleuth+zinkip 分布式链路追踪

dubbo分布式日志调用链追踪