【SpringCloud】06 链路跟踪 Sleuth+zipkin

news2024/11/27 2:28:56

链路追踪

在大型系统的微服务化构建中,一个系统被拆分成了许多微服务。这些模块负责不同的功能,组合成系统,最终可以提供丰富的功能。在这种架构中,一次请求往往需要涉及到多个服务。互联网应用构建在不同的软件模块集上,这些软件模块,有可能是由不同的团队开发、可能使用不同的编程语言来实现、有可能布在了几千台服务器,横跨多个不同的数据中心【区域】,也就意味着这种架构形式也会存在一些问题:

l 如何快速发现问题?

l 如何判断故障影响范围?

l 如何梳理服务依赖以及依赖的合理性?

l 如何分析链路性能问题以及实时容量规划?

在这里插入图片描述

定位该请求的故障:发生在哪个微服务上。

理念: 在每个微服务节点上----》安装一个GPS. ----程序中----日志。我们在通过查看日志 就可以定位响应的错误。

收集-----展示到一个统一的界面。

第一个就是在每个微服务上 帮你产生日志记录。

第二个技术就是收集这些日志,并能展示到一个图形化界面上。

1. Sleuth

它的作用就是为微服务产生日志记录。

Trace (一次请求的完整链路–包含很多span(微服务接口))
由一组Trace Id(贯穿整个链路)相同的Span串联形成一个树状结构。为了实现请求跟踪,当请求到达分布式系统的入口端点时,只需要服务跟踪框架为该请求创建一个唯一的标识(即TraceId),同时在分布式系统内部流转的时候,框架始终保持传递该唯一值,直到整个请求的返回。那么我们就可以使用该唯一标识将所有的请求串联起来,形成一条完整的请求链路。
Span
代表了一组基本的工作单元。为了统计各处理单元的延迟,当请求到达各个服务组件的时候,也通过一个唯一标识(SpanId)来标记它的开始、具体过程和结束。通过SpanId的开始和结束时间戳,就能统计该span的调用时间,除此之外,我们还可以获取如事件的名称。请求信息等元数据。
Annotation
用它记录一段时间内的事件,内部使用的重要注释:
l cs(Client Send)客户端发出请求,开始一个请求的命令
l sr(Server Received)服务端接受到请求开始进行处理, sr-cs = 网络延迟(服务调用的时间)
l ss(Server Send)服务端处理完毕准备发送到客户端, ss - sr = 服务器上的请求处理时间
l cr(Client Reveived)客户端接受到服务端的响应,请求结束。 cr - cs = 请求的总时间

在这里插入图片描述

1.1 如何使用sleuth

在微服务中引入sleuth依赖—整个父工程中
这样所有微服务都会拥有sleuth包

<!--引入sleuth依赖-->
<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-sleuth</artifactId>
    </dependency>
</dependencies>

在这里插入图片描述
浏览器
在这里插入图片描述
整个请求链路,响应的时间是500多毫秒。 是哪台服务器出现故障。 可以通过sleuth产生的日志进行查看,自己计算时间戳来查看。 这种方案十分麻烦。

我们通过zipkin收集sleuth产生的日志 并以图形化展示。

2. zipkin

作用: 收集微服务上sleuth产生的日志 并以图形化的模式来展示给客户。

zipkin有服务端【服务器】和客户端【微服务】
在这里插入图片描述

2.1 运行zipkin服务端

java -jar zipkin-server-2.12.9-exec.jar

在这里插入图片描述


在这里插入图片描述


微服务接入zipkin

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

在相应微服务上接入zipkin
在这里插入图片描述


在这里插入图片描述
使用配置—做微服务的配置管理

sleuth+zipkin 完成链路追踪—定位错误

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/42392.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【附源码】计算机毕业设计JAVA智慧养老院管理系统

【附源码】计算机毕业设计JAVA智慧养老院管理系统 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; JAVA …

Assignment写作抄袭常见形式怎么了解?

直接照抄他人的想法并且当做自己的Assignment上交&#xff0c;这是最简单的Assignment抄袭行为。实际上&#xff0c;形式更微妙的Assignment抄袭形式更为常见。今天我们为大家介绍英国Assignment抄袭常见的形式&#xff0c;帮助大家做好英国Assignment查重&#xff0c;避免Assi…

React源码分析(一)Fiber

前言 本次React源码参考版本为17.0.3。 React架构前世今生 查阅文档了解到&#xff0c; React16.x是个分水岭。 React15及之前 在16之前&#xff0c;React架构大致可以分为两层&#xff1a; Reconciler&#xff1a; 主要职责是对比查找更新前后的变化的组件&#xff1b;R…

TMS Logging提供了短日志输出

TMS Logging提供了短日志输出 TMS Logging Compact跨平台框架以最小的代码量为各种目标提供了短日志输出。 TMS记录惊人属性&#xff1a; 登录到一个或多个输出处理程序&#xff0c;如控制台、HTML、文本、文本、CSV文件、TCP/IP、浏览器、Windows事件日志等&#xff0c;。。。…

代码质量与安全 | 使用Incredibuild加速Klocwork静态代码分析

Klocwork是一款优秀的静态代码分析和SAST工具&#xff0c;适用于 C、C、C#、Java、JavaScript、Python和Kotlin&#xff0c;可识别软件安全性、质量和可靠性问题&#xff0c;帮助强制遵守标准。 Incredibuild是一款加速编译工具&#xff0c;为C代码编译和分析提供强大的分布式处…

IMX6ULL学习记录——持续更新中......

环境搭建小记 问题集锦 1、nfs无法挂载的问题 原因&#xff1a;ubuntu16之后nfs默认使用nfs的版本为3,4 解决&#xff1a;原子用户手册中/【正点原子】I.MX6U网络环境TFTP&NFS搭建手册V1.3.1/第四章 4.3 NFS挂载文件系统 具体&#xff1a; sudo vim /etc/default/nfs…

CISAW信息安全保障人员认证考试难吗?

CISAW信息安全保障人员认证&#xff0c;作为信息安全行业相当热门的证书之一&#xff0c;其持证人数已超50%&#xff0c;在信息安全行业内占有一席之地&#xff0c;很多报考人都比较关心CISAW考试难不难&#xff1f;能通过吗&#xff1f;那接下来说一说CISAW证书考不好考&#…

《WEB前端框架开发技术》HTML5响应式旅游景区网站设计与实现——榆林子州HTML+CSS+JavaScript

&#x1f468;‍&#x1f393;学生HTML静态网页基础水平制作&#x1f469;‍&#x1f393;&#xff0c;页面排版干净简洁。使用HTMLCSS页面布局设计,web大学生网页设计作业源码&#xff0c;这是一个不错的旅游网页制作&#xff0c;画面精明&#xff0c;排版整洁&#xff0c;内容…

面向OLAP的列式存储DBMS-12-[ClickHouse]的管理与运维

ClickHouse 的管理与运维 ClickHouse 管理和运维相关的知识&#xff0c;该部分可以让 ClickHouse 变得更加安全与健壮。在前面演示的案例中&#xff0c;为了方便&#xff0c;我们一直使用默认的 default 用户&#xff0c;并且没有配置密码&#xff0c;这显然不符合生产环境的要…

怎么看电脑配置?电脑配置好不好?详细教程来了!

小伙伴出去买电脑&#xff0c;最关心的就是电脑配置问题。买回电脑后&#xff0c;首先应该是查看自己的电脑配置&#xff0c;看看是否跟商家宣传的一样&#xff0c;有没有出现被更换的问题。那么怎么看电脑配置呢&#xff1f;怎么看电脑配置和型号&#xff1f;接下来小编就跟大…

算法设计与分析 SCAU19184 传球游戏

19184 传球游戏 时间限制:1000MS 代码长度限制:10KB 提交次数:0 通过次数:0 题型: 编程题 语言: G;GCC;VC;JAVA Description n个同学站成一个圆圈&#xff0c;其中的一个同学手里拿着一个球&#xff0c;每个同学可以把球传给自己左右的两个同学中的一个&#xff08;左右任意…

制作一个简单HTML抗疫逆行者网页作业(HTML+CSS)

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

Spring循环依赖

一、循环依赖全景图 二、什么是循环依赖问题&#xff1f; 1、什么是循环依赖&#xff1a; 类与类之间的依赖关系形成了闭环&#xff0c;就会导致循环依赖问题的产生。 比如下图中A类依赖了B类&#xff0c;B类依赖了C类&#xff0c;而最后C类又依赖了A类&#xff0c;这样就形…

免费分享一个springboot+vue学生选课管理系统,挺漂亮的

大家好&#xff0c;我是锋哥&#xff0c;看到一个不错的springbootvue前后端分离的学生选课管理系统&#xff0c;分享下哈。 项目介绍 这是一个采用前后端分离开发的项目&#xff0c;前端采用 Vue 开发、后端采用 SpringBoot Mybatis 开发。 项目部署 1. 将 studentms.sql…

如何将图片在线转换成文字?分享在线转换方法

怎么把图片转换成文字内容呢&#xff1f;大家在日常中使用的图片文件&#xff0c;很多时候都会拿来记录重要内容&#xff0c;如黑板上的文字来不及记下来就要被擦掉&#xff0c;演示的PPT文件没记完就换页了等操作&#xff0c;这就让我们很多小伙伴养成了用图片拍照或截图来记录…

Java案例——控制台实现QuickHit小游戏

一、需求概述 1.根据输入速率和正确率将玩家分为不同级别 2.级别越高&#xff0c;一次显示的字符数越多&#xff0c;玩家正确输入一次的得分也越高 3.规定时间内完成规定次数的输入&#xff0c;正确率达到规定要求&#xff0c;则升级 4.玩家最高级别为6级、初始级别一律为1…

chapter4——时钟分频器

目录同步整数分频器具有50%占空比的奇数整数分频非整数分频&#xff08;非50%占空比&#xff09;典型情况下SOC要对设计中各种组件提供许多与相位相关的时钟。将主时钟以2为幂次进行分割来产生同步偶数分频时钟&#xff0c;有时也会需要按奇数或小数进行分频。 同步整数分频器…

python推导式全局变量多参数传参装饰器

目录 一、推导式运用 二、全局变量 三、多参数传参 四、装饰器 一、推导式运用 # 推导式# for i in range(10): # print(i)# 创建列表 其中奇数位为1&#xff0c; 偶数位为0a[ i for i in range(10)] a2[ 1 if i %2 0 else 0 for i in range(10) ] print(a) print(a2) pr…

LEADTOOLS 入门教程: 使用文档转换器转换文件 - .NET Core

LEADTOOLS是一个综合工具包的集合&#xff0c;用于将识别、文档、医疗、成像和多媒体技术整合到桌面、服务器、平板电脑、网络和移动解决方案中&#xff0c;是一项企业级文档自动化解决方案&#xff0c;有捕捉&#xff0c;OCR&#xff0c;OMR&#xff0c;表单识别和处理&#x…

5款可以在学习和办公上提供帮助的软件

今天给大家推荐5个我自己也常用的软件&#xff0c;可以解决很多问题&#xff0c;给你的学习和办公带来巨大帮助。 1.文档检索启动——Listary 最近一直在整理文档&#xff0c;很多笔记和学案都已经不用了&#xff0c;想着进行一个归档&#xff0c;首先对磁盘进行了分区管理&a…