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

原文地址:https://www.cnblogs.com/rmxd/p/12588312.html

时间: 2024-10-28 16:38:31

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

SpringCloud Sleuth 分布式请求链路跟踪

一.概述 ? 在微服务框架中,一个客户端发起的请求在后端系统中会经过多个不同的服务节点调用来协同产生最后的请求结果,每一个前端请求都会形成一条复杂的分布式服务调用链路,链路中的任何一环出现高延时或错误都会引起整个请求最后的失败.SpringCloud Sleuth 提供了一套完整的服务跟踪的解决方案,在分布式系统中提供追踪解决方案并且兼容支持了zipkin .官方文档地址:https://cloud.spring.io/spring-cloud-static/spring-cloud-sleut

马哥学习笔记二十四——分布式复制快设备drbd

DRBD: 主从 primary: 可执行读.写操作 secondary: 文件系统不能挂载 DRBD: dual primay, 双主(基于集群文件系统的高可用集群) 磁盘调度器:合并读请求,合并写请求: Procotol:drbd数据同步协议 A: Async, 异步  数据发送到本机tcp/ip协议栈 B:semi sync, 半同步  数据发送到对方tcp/ip协议 C:sync, 同步  数据到达对方存储设备 DRBD Source: DRBD资源 资源名称:可以是除了空白字符外的任意

分布式基础之二阶段提交

分布式基础之二阶段提交 二阶段提交(Two Phase Commit)在分布式事务处理中非常常见.它主要用来保证分布式事务处理的一致性,决定事务的提交或回滚.目前二阶段提交广泛应用于关系型数据库的分布式事务处理中,它是分布式系统中的一个常见协议. 需求 为什么要二阶段提交?因为在分布式系统中,每个节点只知道自己的事务是否执行成功了,而分布式系统要求一致性,也就是所有的节点的状态都应该一致.如果某一个事务只在部分节点执行成功,那么势必会导致各分布式节点不一致.二阶段提交就是用来保证要么所有的节点都

Spring Cloud(十二):分布式链路跟踪 Sleuth 与 Zipkin【Finchley 版】

Spring Cloud(十二):分布式链路跟踪 Sleuth 与 Zipkin[Finchley 版] 发表于 2018-04-24 | 随着业务发展,系统拆分导致系统调用链路愈发复杂一个前端请求可能最终需要调用很多次后端服务才能完成,当整个请求变慢或不可用时,我们是无法得知该请求是由某个或某些后端服务引起的,这时就需要解决如何快读定位服务故障点,以对症下药.于是就有了分布式系统调用跟踪的诞生. 现今业界分布式服务跟踪的理论基础主要来自于 Google 的一篇论文<Dapper, a Larg

《lua程序设计(第二版)》学习笔记(二)

直接上代码 1: -- 第2章 类型与值 2: -- 动态类型的语言,每个值都携带自身类型信息 3: print("类型打印,每个值都携带自身类型"); 4: print(type("Hello world")); -- string 完全采用8位编码,字符可以具有任何数值编码,可以将任意二进制数据存储到字符串中 5: --[[ 6: string是不可变值,不能像C一样修改一个字符创中某个字符,而是应该 7: 创建一个新的字符串; 8: 和其他对象一样,都是自动内

分布式入门之4:二阶段提交

1. 背景: 初时提出,是为解决分布式数据库的事务问题.单机数据库事务可靠日志技术,MVCC技术实现.分布式情况下,就需要额外的手段来保证,这才出现了二阶段提交. 2. 流程: 从角色上,二阶段提交分为两种角色:协调者(coordinate),参与者(participant).流程思路上很简单: 1. 协调者询问询问所有参与者,能否提交:参与者返回是否能提交的结果: 2. 协调者根据参与者的返回结果决定是否提交事务,并通知参与者执行. 但实际上,二阶段提交需要考虑不少异常场景: 对照上图: 1

spring4.0.6最新稳定版新特性学习,注解自动扫描bean,自动注入bean(二)

Spring4.0的新特性我们在上一章已经介绍过了.包括它对jdk8的支持,Groovy Bean Definition DSL的支持,核心容器功能的改进,Web开发改进,测试框架改进等等.这张我们主要介绍spring4.0的自动扫描功能,以及对bean的过滤等特性进行学习. 好吧,废话少说,我们来看看代码吧. package com.herman.ss.test; import org.springframework.context.ApplicationContext; import org

DICOM医学图像处理:storescp.exe与storescu.exe源码剖析,学习C-STORE请求

背景: 上一篇专栏博文中针对PACS终端(或设备终端,如CT设备)与RIS系统之间worklist查询进行了介绍,并着重对比分析了DICOM3.0中各部分对DICOM网络通讯服务的定义.此次通过结合早些时间的博文DICOM医学图像处理:基于DCMTK工具包学习和分析worklist,对DCMTK开源库中提供的storescp.exe和storescu.exe工具的源码进行剖析,从底层深入了解C-STORE服务的触发及响应. 分析思路: storescp.exe和storescu.exe分别充当着

大数据学习路线及各阶段学习书籍推荐

大数据学习路线及各阶段学习书籍推荐!废话不多说,直接切入主题,有需要的小伙伴可以参考学习! 阶段一.大数据基础--java语言基础方面 (1)Java语言基础 Java开发介绍.熟悉Eclipse开发工具.Java语言基础.Java流程控制.Java字符串.Java数组与类和对象.数字处理类与核心技术.I/O与反射.多线程.Swing程序与集合类 (2) HTML.CSS与JavaScript PC端网站布局.HTML5+CSS3基础.WebApp页面布局.原生JavaScript交互功能开发.