SpringCloud(H版)二阶段学习---分布式请求链路追踪

Posted coder

tags:

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

  前言:不断学习就是程序员的宿命。

一、概述

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

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

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

 

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

 精简官方原理图: 一条链路通过Trace Id唯一标识,Span标识发起的请求信息,各Span通过Parent Id关联

 

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

 

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

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

二、链路监控搭建

  简单来说,Sleuth负责收集整理,zipkin负责展现。

1、下载安装zipkin

  SpringCloud从F版已不需要自己搭建Zipkin Server了,只需调用jar包即可

  下载地址:https://dl.bintray.com/openzipkin/maven/io/zipkin/java/zipkin-server/

  运行zipkin:zipkin-server-2.12.9-exec.jar

 2、测试

2.1、pom添加sleuth依赖

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

2.2、application.yml添加sleuth配置

spring:
  application:
    name: cloud-consumer-order
  # zipkin/sleuth链路跟踪
  zipkin:
    base-url: http://localhost:9411
  sleuth:
    sampler:
      # 采样值介于0到1之间,1表示全部采集
      probability: 1
application.yml

以上是关于SpringCloud(H版)二阶段学习---分布式请求链路追踪的主要内容,如果未能解决你的问题,请参考以下文章

SpringCloud H版 Sleuth+Zipkin 服务链路监控与追踪

SpringCloud-2.0-周阳(25. 简述 Seata 的原理)

SpringCloud H版 Hystrix 介绍及服务降级讲解

SpringCloud学习系列之五-----配置中心(Config)和消息总线(Bus)完美使用版

SpringCloud学习系列之五-----配置中心(Config)和消息总线(Bus)完美使用版

SpringCloud H版 GateWay 网关服务降级